aboutsummaryrefslogtreecommitdiff
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 82b6e8435..a06ee7e57 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;