* Subtle bug: if you import File::stat in one module, it affects other

modules as well.  So use symbolic field names everywhere (which is
  nicer anyway).
This commit is contained in:
Eelco Dolstra 2011-04-11 08:21:30 +00:00
parent b1882c3ef7
commit 83252b4ca9
2 changed files with 7 additions and 5 deletions

View file

@ -2,6 +2,7 @@
use strict; use strict;
use File::Temp qw(tempdir); use File::Temp qw(tempdir);
use File::stat;
# Some patch generations options. # Some patch generations options.
@ -205,7 +206,7 @@ sub generatePatches {
system("@bunzip2@ < $srcNarBz2 > $tmpDir/A") == 0 system("@bunzip2@ < $srcNarBz2 > $tmpDir/A") == 0
or die "cannot unpack $srcNarBz2"; or die "cannot unpack $srcNarBz2";
if ((stat "$tmpDir/A")[7] >= $maxNarSize) { if (stat("$tmpDir/A")->size >= $maxNarSize) {
print " skipping, source is too large\n"; print " skipping, source is too large\n";
next; next;
} }
@ -213,7 +214,7 @@ sub generatePatches {
system("@bunzip2@ < $dstNarBz2 > $tmpDir/B") == 0 system("@bunzip2@ < $dstNarBz2 > $tmpDir/B") == 0
or die "cannot unpack $dstNarBz2"; or die "cannot unpack $dstNarBz2";
if ((stat "$tmpDir/B")[7] >= $maxNarSize) { if (stat("$tmpDir/B")->size >= $maxNarSize) {
print " skipping, destination is too large\n"; print " skipping, destination is too large\n";
next; next;
} }
@ -235,8 +236,8 @@ sub generatePatches {
my $narDiffHash = `@bindir@/nix-hash --flat --type $hashAlgo --base32 $tmpDir/DIFF` or die; my $narDiffHash = `@bindir@/nix-hash --flat --type $hashAlgo --base32 $tmpDir/DIFF` or die;
chomp $narDiffHash; chomp $narDiffHash;
my $narDiffSize = (stat "$tmpDir/DIFF")[7]; my $narDiffSize = stat("$tmpDir/DIFF")->size;
my $dstNarBz2Size = (stat $dstNarBz2)[7]; my $dstNarBz2Size = stat($dstNarBz2)->size;
print " size $narDiffSize; full size $dstNarBz2Size; ", $time2 - $time1, " seconds\n"; print " size $narDiffSize; full size $dstNarBz2Size; ", $time2 - $time1, " seconds\n";

View file

@ -2,6 +2,7 @@
use strict; use strict;
use File::Temp qw(tempdir); use File::Temp qw(tempdir);
use File::stat;
use NixManifest; use NixManifest;
my $hashAlgo = "sha256"; my $hashAlgo = "sha256";
@ -178,7 +179,7 @@ for (my $n = 0; $n < scalar @storePaths; $n++) {
(-f $narFile) or die "narfile for $storePath not found"; (-f $narFile) or die "narfile for $storePath not found";
push @narArchives, $narFile; push @narArchives, $narFile;
my $narbz2Size = (stat $narFile)[7]; my $narbz2Size = stat($narFile)->size;
my $references = `$binDir/nix-store --query --references '$storePath'`; my $references = `$binDir/nix-store --query --references '$storePath'`;
die "cannot query references for `$storePath'" if $? != 0; die "cannot query references for `$storePath'" if $? != 0;