forked from lix-project/lix
* Don't decompress the manifests in /nix/var/nix/manifest. This saves
disk space, and, since they're typically only decompressed once (to fill the manifest cache), doesn't make things slower.
This commit is contained in:
parent
63ee5e4d2a
commit
d7d7910ba4
|
@ -53,8 +53,14 @@ sub addPatch {
|
||||||
sub readManifest_ {
|
sub readManifest_ {
|
||||||
my ($manifest, $addNAR, $addPatch) = @_;
|
my ($manifest, $addNAR, $addPatch) = @_;
|
||||||
|
|
||||||
|
# Decompress the manifest if necessary.
|
||||||
|
if ($manifest =~ /\.bz2$/) {
|
||||||
|
open MANIFEST, "$Nix::Config::bzip2 -d < $manifest |"
|
||||||
|
or die "cannot decompress `$manifest': $!";
|
||||||
|
} else {
|
||||||
open MANIFEST, "<$manifest"
|
open MANIFEST, "<$manifest"
|
||||||
or die "cannot open `$manifest': $!";
|
or die "cannot open `$manifest': $!";
|
||||||
|
}
|
||||||
|
|
||||||
my $inside = 0;
|
my $inside = 0;
|
||||||
my $type;
|
my $type;
|
||||||
|
|
|
@ -59,16 +59,7 @@ sub processURL {
|
||||||
# First see if a bzipped manifest is available.
|
# First see if a bzipped manifest is available.
|
||||||
if (system("$Nix::Config::curl --fail --silent --head '$url'.bz2 > /dev/null") == 0) {
|
if (system("$Nix::Config::curl --fail --silent --head '$url'.bz2 > /dev/null") == 0) {
|
||||||
print "fetching list of Nix archives at `$url.bz2'...\n";
|
print "fetching list of Nix archives at `$url.bz2'...\n";
|
||||||
my $bzipped = downloadFile "$url.bz2";
|
$manifest = downloadFile "$url.bz2";
|
||||||
|
|
||||||
$manifest = "$tmpDir/MANIFEST";
|
|
||||||
|
|
||||||
system("$Nix::Config::bzip2 -d < $bzipped > $manifest") == 0
|
|
||||||
or die "cannot decompress manifest";
|
|
||||||
|
|
||||||
$manifest = (`$Nix::Config::binDir/nix-store --add $manifest`
|
|
||||||
or die "cannot copy $manifest to the store");
|
|
||||||
chomp $manifest;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Otherwise, just get the uncompressed manifest.
|
# Otherwise, just get the uncompressed manifest.
|
||||||
|
|
Loading…
Reference in a new issue