aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2010-11-17 14:31:42 +0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2010-11-17 14:31:42 +0000
commitbdf089f46362b8c9defefa0a14e3198582e12818 (patch)
tree08ca2824d09cee5b00cbf9b9fc9294f326120598 /scripts
parent06699d4219019182d9e45ebc613ae1a1df23f257 (diff)
* Before a build, show the disk space that the downloaded store paths
will approximately require.
Diffstat (limited to 'scripts')
-rw-r--r--scripts/copy-from-other-stores.pl.in7
-rw-r--r--scripts/download-using-manifests.pl.in2
-rw-r--r--scripts/readmanifest.pm.in26
3 files changed, 18 insertions, 17 deletions
diff --git a/scripts/copy-from-other-stores.pl.in b/scripts/copy-from-other-stores.pl.in
index a6a14c3dc..10130c089 100644
--- a/scripts/copy-from-other-stores.pl.in
+++ b/scripts/copy-from-other-stores.pl.in
@@ -63,10 +63,15 @@ if ($ARGV[0] eq "--query") {
`@bindir@/nix-store --query --references $storePath`;
die "cannot query references of `$storePath'" if $? != 0;
+ my $narSize = `@bindir@/nix-store --query --size $storePath`;
+ die "cannot query size of `$storePath'" if $? != 0;
+ chomp $narSize;
+
print "$deriver\n";
print scalar @references, "\n";
print "$_\n" foreach @references;
- print "0\n"; # !!! showing size not supported (yet)
+ print "$narSize\n";
+ print "$narSize\n";
}
else { die "unknown command `$cmd'"; }
diff --git a/scripts/download-using-manifests.pl.in b/scripts/download-using-manifests.pl.in
index d48c7dd4b..7b3f7ee66 100644
--- a/scripts/download-using-manifests.pl.in
+++ b/scripts/download-using-manifests.pl.in
@@ -64,6 +64,8 @@ if ($ARGV[0] eq "--query") {
print "$_\n" foreach @references;
my $size = $info->{size} || 0;
print "$size\n";
+ my $narSize = $info->{narSize} || 0;
+ print "$narSize\n";
}
else { die "unknown command `$cmd'"; }
diff --git a/scripts/readmanifest.pm.in b/scripts/readmanifest.pm.in
index 2e6968c7d..c2c4be89b 100644
--- a/scripts/readmanifest.pm.in
+++ b/scripts/readmanifest.pm.in
@@ -33,18 +33,8 @@ sub readManifest {
my $manifestVersion = 2;
- my $storePath;
- my $url;
- my $hash;
- my $size;
- my $basePath;
- my $baseHash;
- my $patchType;
- my $narHash;
- my $references;
- my $deriver;
- my $hashAlgo;
- my $copyFrom;
+ my ($storePath, $url, $hash, $size, $basePath, $baseHash, $patchType);
+ my ($narHash, $narSize, $references, $deriver, $hashAlgo, $copyFrom);
while (<MANIFEST>) {
chomp;
@@ -62,6 +52,7 @@ sub readManifest {
undef $hash;
undef $size;
undef $narHash;
+ undef $narSize;
undef $basePath;
undef $baseHash;
undef $patchType;
@@ -89,7 +80,8 @@ sub readManifest {
if (!$found) {
push @{$narFileList},
{ url => $url, hash => $hash, size => $size
- , narHash => $narHash, references => $references
+ , narHash => $narHash, narSize => $narSize
+ , references => $references
, deriver => $deriver, hashAlgo => $hashAlgo
};
}
@@ -100,8 +92,8 @@ sub readManifest {
addPatch $patches, $storePath,
{ url => $url, hash => $hash, size => $size
, basePath => $basePath, baseHash => $baseHash
- , narHash => $narHash, patchType => $patchType
- , hashAlgo => $hashAlgo
+ , narHash => $narHash, narSize => $narSize
+ , patchType => $patchType, hashAlgo => $hashAlgo
};
}
@@ -132,6 +124,7 @@ sub readManifest {
elsif (/^\s*BaseHash:\s*(\S+)\s*$/) { $baseHash = $1; }
elsif (/^\s*Type:\s*(\S+)\s*$/) { $patchType = $1; }
elsif (/^\s*NarHash:\s*(\S+)\s*$/) { $narHash = $1; }
+ elsif (/^\s*NarSize:\s*(\d+)\s*$/) { $narSize = $1; }
elsif (/^\s*References:\s*(.*)\s*$/) { $references = $1; }
elsif (/^\s*Deriver:\s*(\S+)\s*$/) { $deriver = $1; }
elsif (/^\s*ManifestVersion:\s*(\d+)\s*$/) { $manifestVersion = $1; }
@@ -183,8 +176,9 @@ sub writeManifest {
print MANIFEST " StorePath: $storePath\n";
print MANIFEST " NarURL: $patch->{url}\n";
print MANIFEST " Hash: $patch->{hash}\n";
- print MANIFEST " NarHash: $patch->{narHash}\n";
print MANIFEST " Size: $patch->{size}\n";
+ print MANIFEST " NarHash: $patch->{narHash}\n";
+ print MANIFEST " NarSize: $patch->{narSize}\n" if $patch->{narSize};
print MANIFEST " BasePath: $patch->{basePath}\n";
print MANIFEST " BaseHash: $patch->{baseHash}\n";
print MANIFEST " Type: $patch->{patchType}\n";