about summary refs log tree commit diff
path: root/scripts/nix-pull.in
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/nix-pull.in')
-rw-r--r--scripts/nix-pull.in25
1 files changed, 14 insertions, 11 deletions
diff --git a/scripts/nix-pull.in b/scripts/nix-pull.in
index 82b6e8435bc3..a06ee7e57520 100644
--- a/scripts/nix-pull.in
+++ b/scripts/nix-pull.in
@@ -15,8 +15,8 @@ my $manifest = "$tmpdir/manifest";
 
 
 # Obtain URLs either from the command line or from a configuration file.
-my %storePaths2urls;
-my %urls2hashes;
+my %narFiles;
+my %patches;
 my %successors;
 
 sub processURL {
@@ -29,7 +29,7 @@ sub processURL {
            "'$url' > '$manifest'") == 0
            or die "curl failed: $?";
     
-    readManifest $manifest, \%storePaths2urls, \%urls2hashes, \%successors;
+    readManifest $manifest, \%narFiles, \%patches, \%successors;
 }
 
 while (@ARGV) {
@@ -38,7 +38,7 @@ while (@ARGV) {
 }
 
 
-my $size = scalar (keys %storePaths2urls);
+my $size = scalar (keys %narFiles);
 print "$size store paths in manifest\n";
 
 
@@ -62,13 +62,16 @@ my $pid = open2(\*READ, \*WRITE, "@bindir@/nix-store --substitute")
 
 close READ;
 
-foreach my $storePath (keys %storePaths2urls) {
-    print WRITE "$storePath\n";
-    print WRITE "$storeExpr\n";
-    print WRITE "/fetch\n";
-    print WRITE "2\n";
-    print WRITE "$storePaths2urls{$storePath}\n";
-    print WRITE "$urls2hashes{$storePaths2urls{$storePath}}\n";
+foreach my $storePath (keys %narFiles) {
+    my $narFileList = $narFiles{$storePath};
+    foreach my $narFile (@{$narFileList}) {
+        print WRITE "$storePath\n";
+        print WRITE "$storeExpr\n";
+        print WRITE "/fetch\n";
+        print WRITE "2\n";
+        print WRITE "$narFile->{url}\n";
+        print WRITE "$narFile->{hash}\n";
+    }
 }
 
 close WRITE;