* Convert tabs to spaces.
This commit is contained in:
parent
e5fbf58041
commit
81304a6bb5
|
@ -18,53 +18,53 @@ while (<CONFFILE>) {
|
||||||
|
|
||||||
print "obtaining list of Nix archives at $url...\n";
|
print "obtaining list of Nix archives at $url...\n";
|
||||||
|
|
||||||
system "wget '$url' -O '$tmpfile' 2> /dev/null"; # !!! escape
|
system "wget '$url' -O '$tmpfile' 2> /dev/null"; # !!! escape
|
||||||
if ($?) { die "`wget' failed"; }
|
if ($?) { die "`wget' failed"; }
|
||||||
|
|
||||||
open INDEX, "<$tmpfile";
|
open INDEX, "<$tmpfile";
|
||||||
|
|
||||||
while (<INDEX>) {
|
while (<INDEX>) {
|
||||||
# Get all links to prebuilts, that is, file names of the
|
# Get all links to prebuilts, that is, file names of the
|
||||||
# form foo-HASH-HASH.tar.bz2.
|
# form foo-HASH-HASH.tar.bz2.
|
||||||
next unless (/HREF=\"([^\"]*)\"/);
|
next unless (/HREF=\"([^\"]*)\"/);
|
||||||
my $fn = $1;
|
my $fn = $1;
|
||||||
next if $fn =~ /\.\./;
|
next if $fn =~ /\.\./;
|
||||||
next if $fn =~ /\//;
|
next if $fn =~ /\//;
|
||||||
next unless $fn =~ /([0-9a-z]{32})-([0-9a-z]{32})\.nar/;
|
next unless $fn =~ /([0-9a-z]{32})-([0-9a-z]{32})\.nar/;
|
||||||
my $hash = $2;
|
my $hash = $2;
|
||||||
|
|
||||||
print "registering $hash -> $url/$fn\n";
|
print "registering $hash -> $url/$fn\n";
|
||||||
|
|
||||||
# Construct a Fix expression that fetches and unpacks a
|
# Construct a Fix expression that fetches and unpacks a
|
||||||
# Nix archive from the network.
|
# Nix archive from the network.
|
||||||
my $fetch =
|
my $fetch =
|
||||||
"App(IncludeFix(\"fetchurl/fetchurl.fix\"), " .
|
"App(IncludeFix(\"fetchurl/fetchurl.fix\"), " .
|
||||||
"[(\"url\", \"$url/$fn\"), (\"hash\", \"\")])";
|
"[(\"url\", \"$url/$fn\"), (\"hash\", \"\")])";
|
||||||
my $fixexpr =
|
my $fixexpr =
|
||||||
"App(IncludeFix(\"nar/unnar.fix\"), " .
|
"App(IncludeFix(\"nar/unnar.fix\"), " .
|
||||||
"[ (\"nar\", $fetch)" .
|
"[ (\"nar\", $fetch)" .
|
||||||
", (\"name\", \"fetched-$hash\")" .
|
", (\"name\", \"fetched-$hash\")" .
|
||||||
"])";
|
"])";
|
||||||
|
|
||||||
my $fixfile = "/tmp/nix-pull-tmp.fix";
|
my $fixfile = "/tmp/nix-pull-tmp.fix";
|
||||||
open FIX, ">$fixfile";
|
open FIX, ">$fixfile";
|
||||||
print FIX $fixexpr;
|
print FIX $fixexpr;
|
||||||
close FIX;
|
close FIX;
|
||||||
|
|
||||||
# Instantiate a Nix expression from the Fix expression.
|
# Instantiate a Nix expression from the Fix expression.
|
||||||
my $nhash = `fix $fixfile`;
|
my $nhash = `fix $fixfile`;
|
||||||
$? and die "instantiating Nix archive expression";
|
$? and die "instantiating Nix archive expression";
|
||||||
chomp $nhash;
|
chomp $nhash;
|
||||||
die unless $nhash =~ /^([0-9a-z]{32})$/;
|
die unless $nhash =~ /^([0-9a-z]{32})$/;
|
||||||
|
|
||||||
push @subs, $hash;
|
push @subs, $hash;
|
||||||
push @subs, $nhash;
|
push @subs, $nhash;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
close INDEX;
|
close INDEX;
|
||||||
|
|
||||||
unlink $tmpfile;
|
unlink $tmpfile;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,9 +11,9 @@ foreach my $hash (@ARGV) {
|
||||||
my @paths;
|
my @paths;
|
||||||
open PATHS, "nix -qrh $hash 2> /dev/null |" or die "nix -qrh";
|
open PATHS, "nix -qrh $hash 2> /dev/null |" or die "nix -qrh";
|
||||||
while (<PATHS>) {
|
while (<PATHS>) {
|
||||||
chomp;
|
chomp;
|
||||||
next unless /^\//;
|
next unless /^\//;
|
||||||
push @paths, $_;
|
push @paths, $_;
|
||||||
}
|
}
|
||||||
close PATHS;
|
close PATHS;
|
||||||
|
|
||||||
|
@ -21,38 +21,38 @@ foreach my $hash (@ARGV) {
|
||||||
# a Nix archive.
|
# a Nix archive.
|
||||||
foreach my $path (@paths) {
|
foreach my $path (@paths) {
|
||||||
|
|
||||||
# Hash the path.
|
# Hash the path.
|
||||||
my $phash = `nix-hash $path`;
|
my $phash = `nix-hash $path`;
|
||||||
$? and die "nix-hash";
|
$? and die "nix-hash";
|
||||||
chomp $phash;
|
chomp $phash;
|
||||||
die unless $phash =~ /^([0-9a-z]{32})$/;
|
die unless $phash =~ /^([0-9a-z]{32})$/;
|
||||||
|
|
||||||
# Construct a Fix expression that creates a Nar archive.
|
# Construct a Fix expression that creates a Nar archive.
|
||||||
my $fixexpr =
|
my $fixexpr =
|
||||||
"App(IncludeFix(\"nar/nar.fix\"), " .
|
"App(IncludeFix(\"nar/nar.fix\"), " .
|
||||||
"[ (\"path\", Path(\"$path\", Hash(\"$phash\"), [Include(\"$hash\")]))" .
|
"[ (\"path\", Path(\"$path\", Hash(\"$phash\"), [Include(\"$hash\")]))" .
|
||||||
", (\"name\", \"$phash.nar\")" .
|
", (\"name\", \"$phash.nar\")" .
|
||||||
"])";
|
"])";
|
||||||
|
|
||||||
my $fixfile = "/tmp/nix-push-tmp.fix";
|
my $fixfile = "/tmp/nix-push-tmp.fix";
|
||||||
open FIX, ">$fixfile";
|
open FIX, ">$fixfile";
|
||||||
print FIX $fixexpr;
|
print FIX $fixexpr;
|
||||||
close FIX;
|
close FIX;
|
||||||
|
|
||||||
# Instantiate a Nix expression from the Fix expression.
|
# Instantiate a Nix expression from the Fix expression.
|
||||||
my $nhash = `fix $fixfile`;
|
my $nhash = `fix $fixfile`;
|
||||||
$? and die "instantiating Nix archive expression";
|
$? and die "instantiating Nix archive expression";
|
||||||
chomp $nhash;
|
chomp $nhash;
|
||||||
die unless $nhash =~ /^([0-9a-z]{32})$/;
|
die unless $nhash =~ /^([0-9a-z]{32})$/;
|
||||||
|
|
||||||
# Realise the Nix expression.
|
# Realise the Nix expression.
|
||||||
my $npath = `nix -qph $nhash 2> /dev/null`;
|
my $npath = `nix -qph $nhash 2> /dev/null`;
|
||||||
$? and die "creating Nix archive";
|
$? and die "creating Nix archive";
|
||||||
chomp $npath;
|
chomp $npath;
|
||||||
|
|
||||||
push @pushlist, $npath;
|
push @pushlist, $npath;
|
||||||
|
|
||||||
print "$path -> $npath\n";
|
print "$path -> $npath\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue