build-remote.pl: Copy all outputs in one operation

This commit is contained in:
Eelco Dolstra 2013-05-23 14:39:58 -04:00
parent 72d8209548
commit 107505e13a

View file

@ -289,13 +289,13 @@ if (system("exec ssh $hostName @sshOpts '(read; kill -INT -\$\$) <&0 & exec nix-
# Copy the output from the build machine. # Copy the output from the build machine.
foreach my $output (@outputs) { my @outputs2 = grep { !isValidPath($_) } @outputs;
if (scalar @outputs2 > 0) {
my $maybeSignRemote = ""; my $maybeSignRemote = "";
$maybeSignRemote = "--sign" if $UID != 0; $maybeSignRemote = "--sign" if $UID != 0;
next if isValidPath($output); system("exec ssh $hostName @sshOpts 'nix-store --export $maybeSignRemote @outputs2'" .
system("exec ssh $hostName @sshOpts 'nix-store --export $maybeSignRemote $output'" . "| NIX_HELD_LOCKS='@outputs2' @bindir@/nix-store --import > /dev/null") == 0
"| NIX_HELD_LOCKS=$output @bindir@/nix-store --import > /dev/null") == 0 or die("cannot copy paths " . join(", ", @outputs) . " from `$hostName': $?");
or die "cannot copy $output from $hostName: $?";
} }