* 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:
		
							parent
							
								
									b1882c3ef7
								
							
						
					
					
						commit
						83252b4ca9
					
				
					 2 changed files with 7 additions and 5 deletions
				
			
		| 
						 | 
					@ -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";
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue