about summary refs log tree commit diff
path: root/perl/lib/Nix/CopyClosure.pm
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2016-05-31T09·00+0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2016-05-31T09·48+0200
commitb5ac83f3a3ad95ccbe2a6cb90e6f560e98814358 (patch)
tree674f18b220fc866d77861a2afd363ff301ae9555 /perl/lib/Nix/CopyClosure.pm
parent8e74d1badb4f93a076bda9da4ef8fdbb2668a082 (diff)
nix-copy-closure: Drop Nix <= 1.7 compat
Diffstat (limited to 'perl/lib/Nix/CopyClosure.pm')
-rw-r--r--perl/lib/Nix/CopyClosure.pm56
1 files changed, 1 insertions, 55 deletions
diff --git a/perl/lib/Nix/CopyClosure.pm b/perl/lib/Nix/CopyClosure.pm
index 1adce07a4ded..affb3ea524ae 100644
--- a/perl/lib/Nix/CopyClosure.pm
+++ b/perl/lib/Nix/CopyClosure.pm
@@ -50,16 +50,7 @@ sub copyTo {
     my ($sshHost, $storePaths, $includeOutputs, $dryRun, $useSubstitutes) = @_;
 
     # Connect to the remote host.
-    my ($from, $to);
-    eval {
-        ($from, $to) = connectToRemoteNix($sshHost, []);
-    };
-    if ($@) {
-        chomp $@;
-        warn "$@; falling back to old closure copying method\n";
-        $@ = "";
-        return oldCopyTo(@_);
-    }
+    my ($from, $to) = connectToRemoteNix($sshHost, []);
 
     copyToOpen($from, $to, $sshHost, $storePaths, $includeOutputs, $dryRun, $useSubstitutes);
 
@@ -67,49 +58,4 @@ sub copyTo {
 }
 
 
-# For backwards compatibility with Nix <= 1.7. Will be removed
-# eventually.
-sub oldCopyTo {
-    my ($sshHost, $storePaths, $includeOutputs, $dryRun, $useSubstitutes) = @_;
-
-    # Get the closure of this path.
-    my @closure = reverse(topoSortPaths(computeFSClosure(0, $includeOutputs,
-        map { followLinksToStorePath $_ } @{$storePaths})));
-
-    # Optionally use substitutes on the remote host.
-    if (!$dryRun && $useSubstitutes) {
-        system "ssh $sshHost @globalSshOpts nix-store -r --ignore-unknown @closure";
-        # Ignore exit status because this is just an optimisation.
-    }
-
-    # Ask the remote host which paths are invalid.  Because of limits
-    # to the command line length, do this in chunks.  Eventually,
-    # we'll want to use ‘--from-stdin’, but we can't rely on the
-    # target having this option yet.
-    my @missing;
-    my $missingSize = 0;
-    while (scalar(@closure) > 0) {
-        my @ps = splice(@closure, 0, 1500);
-        open(READ, "set -f; ssh $sshHost @globalSshOpts nix-store --check-validity --print-invalid @ps|");
-        while (<READ>) {
-            chomp;
-            push @missing, $_;
-            my ($deriver, $narHash, $time, $narSize, $refs) = queryPathInfo($_, 1);
-            $missingSize += $narSize;
-        }
-        close READ or die;
-    }
-
-    # Export the store paths and import them on the remote machine.
-    if (scalar @missing > 0) {
-        print STDERR "copying ", scalar @missing, " missing paths to ‘$sshHost’...\n";
-        unless ($dryRun) {
-            open SSH, "| ssh $sshHost @globalSshOpts 'nix-store --import' > /dev/null" or die;
-            exportPaths(fileno(SSH), @missing);
-            close SSH or die "copying store paths to remote machine ‘$sshHost’ failed: $?";
-        }
-    }
-}
-
-
 1;