diff options
Diffstat (limited to 'scripts/nix-pull')
-rw-r--r-- | scripts/nix-pull | 90 |
1 files changed, 45 insertions, 45 deletions
diff --git a/scripts/nix-pull b/scripts/nix-pull index a15af6302022..86d9f4b1144e 100644 --- a/scripts/nix-pull +++ b/scripts/nix-pull @@ -18,53 +18,53 @@ while (<CONFFILE>) { print "obtaining list of Nix archives at $url...\n"; - system "wget '$url' -O '$tmpfile' 2> /dev/null"; # !!! escape - if ($?) { die "`wget' failed"; } - - open INDEX, "<$tmpfile"; - - while (<INDEX>) { - # Get all links to prebuilts, that is, file names of the - # form foo-HASH-HASH.tar.bz2. - next unless (/HREF=\"([^\"]*)\"/); - my $fn = $1; - next if $fn =~ /\.\./; - next if $fn =~ /\//; - next unless $fn =~ /([0-9a-z]{32})-([0-9a-z]{32})\.nar/; - my $hash = $2; - - print "registering $hash -> $url/$fn\n"; - - # Construct a Fix expression that fetches and unpacks a - # Nix archive from the network. - my $fetch = + system "wget '$url' -O '$tmpfile' 2> /dev/null"; # !!! escape + if ($?) { die "`wget' failed"; } + + open INDEX, "<$tmpfile"; + + while (<INDEX>) { + # Get all links to prebuilts, that is, file names of the + # form foo-HASH-HASH.tar.bz2. + next unless (/HREF=\"([^\"]*)\"/); + my $fn = $1; + next if $fn =~ /\.\./; + next if $fn =~ /\//; + next unless $fn =~ /([0-9a-z]{32})-([0-9a-z]{32})\.nar/; + my $hash = $2; + + print "registering $hash -> $url/$fn\n"; + + # Construct a Fix expression that fetches and unpacks a + # Nix archive from the network. + my $fetch = "App(IncludeFix(\"fetchurl/fetchurl.fix\"), " . "[(\"url\", \"$url/$fn\"), (\"hash\", \"\")])"; - my $fixexpr = - "App(IncludeFix(\"nar/unnar.fix\"), " . - "[ (\"nar\", $fetch)" . - ", (\"name\", \"fetched-$hash\")" . - "])"; - - my $fixfile = "/tmp/nix-pull-tmp.fix"; - open FIX, ">$fixfile"; - print FIX $fixexpr; - close FIX; - - # Instantiate a Nix expression from the Fix expression. - my $nhash = `fix $fixfile`; - $? and die "instantiating Nix archive expression"; - chomp $nhash; - die unless $nhash =~ /^([0-9a-z]{32})$/; - - push @subs, $hash; - push @subs, $nhash; - - } - - close INDEX; - - unlink $tmpfile; + my $fixexpr = + "App(IncludeFix(\"nar/unnar.fix\"), " . + "[ (\"nar\", $fetch)" . + ", (\"name\", \"fetched-$hash\")" . + "])"; + + my $fixfile = "/tmp/nix-pull-tmp.fix"; + open FIX, ">$fixfile"; + print FIX $fixexpr; + close FIX; + + # Instantiate a Nix expression from the Fix expression. + my $nhash = `fix $fixfile`; + $? and die "instantiating Nix archive expression"; + chomp $nhash; + die unless $nhash =~ /^([0-9a-z]{32})$/; + + push @subs, $hash; + push @subs, $nhash; + + } + + close INDEX; + + unlink $tmpfile; } } |