diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/download-from-binary-cache.pl.in | 2 | ||||
-rwxr-xr-x | scripts/download-using-manifests.pl.in | 20 | ||||
-rwxr-xr-x | scripts/nix-push.in | 1 |
3 files changed, 15 insertions, 8 deletions
diff --git a/scripts/download-from-binary-cache.pl.in b/scripts/download-from-binary-cache.pl.in index f49f246613a0..751623eebf2e 100644 --- a/scripts/download-from-binary-cache.pl.in +++ b/scripts/download-from-binary-cache.pl.in @@ -508,7 +508,7 @@ sub downloadBinary { next; } my $url = "$cache->{url}/$info->{url}"; # FIXME: handle non-relative URLs - print STDERR "\n*** Downloading ‘$url’ into ‘$storePath’...\n"; + print STDERR "\n*** Downloading ‘$url’ to ‘$storePath’...\n"; Nix::Utils::checkURL $url; if (system("$Nix::Config::curl --fail --location --insecure '$url' | $decompressor | $Nix::Config::binDir/nix-store --restore $storePath") != 0) { die "download of `$info->{url}' failed" . ($! ? ": $!" : "") . "\n" unless $? == 0; diff --git a/scripts/download-using-manifests.pl.in b/scripts/download-using-manifests.pl.in index 24f7c98e0cb9..8f66a292e361 100755 --- a/scripts/download-using-manifests.pl.in +++ b/scripts/download-using-manifests.pl.in @@ -325,7 +325,7 @@ while (scalar @path > 0) { # into the target path. print STDERR " unpacking patched archive...\n"; system("$Nix::Config::binDir/nix-store --restore $v < $tmpNar2") == 0 - or die "cannot unpack $tmpNar2 into `$v'\n"; + or die "cannot unpack $tmpNar2 to `$v'\n"; } $finalNarHash = $patch->{narHash}; @@ -333,20 +333,26 @@ while (scalar @path > 0) { elsif ($edge->{type} eq "narfile") { my $narFile = $edge->{info}; - print STDERR "downloading `$narFile->{url}' into `$v'\n"; + print STDERR "downloading `$narFile->{url}' to `$v'\n"; my $size = $narFile->{size} || -1; print LOGFILE "$$ narfile $narFile->{url} $size $v\n"; Nix::Utils::checkURL $narFile->{url}; + + my $decompressor = + $narFile->{compressionType} eq "bzip2" ? "$Nix::Config::bzip2 -d" : + $narFile->{compressionType} eq "xz" ? "$Nix::Config::xz -d" : + die "unknown compression type `$narFile->{compressionType}'"; + if ($curStep < $maxStep) { # The archive will be used a base to a patch. - system("$curl '$narFile->{url}' | $Nix::Config::bzip2 -d > $tmpNar") == 0 - or die "cannot download and unpack `$narFile->{url}' into `$v'\n"; + system("$curl '$narFile->{url}' | $decompressor > $tmpNar") == 0 + or die "cannot download and unpack `$narFile->{url}' to `$v'\n"; } else { - # Unpack the archive into the target path. - system("$curl '$narFile->{url}' | $Nix::Config::bzip2 -d | $Nix::Config::binDir/nix-store --restore '$v'") == 0 - or die "cannot download and unpack `$narFile->{url}' into `$v'\n"; + # Unpack the archive to the target path. + system("$curl '$narFile->{url}' | $decompressor | $Nix::Config::binDir/nix-store --restore '$v'") == 0 + or die "cannot download and unpack `$narFile->{url}' to `$v'\n"; } $finalNarHash = $narFile->{narHash}; diff --git a/scripts/nix-push.in b/scripts/nix-push.in index 1edd8e77314b..00d03c3c1f0c 100755 --- a/scripts/nix-push.in +++ b/scripts/nix-push.in @@ -227,6 +227,7 @@ for (my $n = 0; $n < scalar @storePaths; $n++) { { url => "$archivesURL/$narName" , hash => "sha256:$compressedHash" , size => $compressedSize + , compressionType => $compressionType , narHash => "$narHash" , narSize => $narSize , references => join(" ", @{$refs}) |