diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/nix-pull | 90 | ||||
-rw-r--r-- | scripts/nix-push | 50 |
2 files changed, 70 insertions, 70 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; } } diff --git a/scripts/nix-push b/scripts/nix-push index 14b7e2834675..731532f1e9a4 100644 --- a/scripts/nix-push +++ b/scripts/nix-push @@ -11,9 +11,9 @@ foreach my $hash (@ARGV) { my @paths; open PATHS, "nix -qrh $hash 2> /dev/null |" or die "nix -qrh"; while (<PATHS>) { - chomp; - next unless /^\//; - push @paths, $_; + chomp; + next unless /^\//; + push @paths, $_; } close PATHS; @@ -21,38 +21,38 @@ foreach my $hash (@ARGV) { # a Nix archive. foreach my $path (@paths) { - # Hash the path. - my $phash = `nix-hash $path`; - $? and die "nix-hash"; - chomp $phash; - die unless $phash =~ /^([0-9a-z]{32})$/; + # Hash the path. + my $phash = `nix-hash $path`; + $? and die "nix-hash"; + chomp $phash; + die unless $phash =~ /^([0-9a-z]{32})$/; - # Construct a Fix expression that creates a Nar archive. - my $fixexpr = + # Construct a Fix expression that creates a Nar archive. + my $fixexpr = "App(IncludeFix(\"nar/nar.fix\"), " . "[ (\"path\", Path(\"$path\", Hash(\"$phash\"), [Include(\"$hash\")]))" . ", (\"name\", \"$phash.nar\")" . "])"; - my $fixfile = "/tmp/nix-push-tmp.fix"; - open FIX, ">$fixfile"; - print FIX $fixexpr; - close FIX; + my $fixfile = "/tmp/nix-push-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})$/; + # 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})$/; - # Realise the Nix expression. - my $npath = `nix -qph $nhash 2> /dev/null`; - $? and die "creating Nix archive"; - chomp $npath; + # Realise the Nix expression. + my $npath = `nix -qph $nhash 2> /dev/null`; + $? and die "creating Nix archive"; + chomp $npath; - push @pushlist, $npath; + push @pushlist, $npath; - print "$path -> $npath\n"; + print "$path -> $npath\n"; } } |