* Separate the cache reading code.

This commit is contained in:
Eelco Dolstra 2006-02-22 14:35:19 +00:00
parent 928cce5922
commit 43fa1c20e7
2 changed files with 28 additions and 25 deletions

View File

@ -1,29 +1,11 @@
#! /usr/bin/perl -w -I. #! /usr/bin/perl -w -I. -I..
use strict; use strict;
use readmanifest; use readmanifest;
use readcache;
# Read the archive directories. print STDERR scalar (keys %readcache::archives), "\n";
my @archives = ();
my %archives;
sub readDir {
my $dir = shift;
opendir(DIR, "$dir") or die "cannot open `$dir': $!";
my @as = readdir DIR;
foreach my $archive (@as) {
push @archives, $archive;
$archives{$archive} = "$dir/$archive";
}
closedir DIR;
}
readDir "/data/webserver/dist/nix-cache";
readDir "/data/webserver/dist/test";
readDir "/data/webserver/dist/patches";
print STDERR scalar @archives, "\n";
# Read the manifests. # Read the manifests.
@ -50,7 +32,7 @@ foreach my $narFile (keys %narFiles) {
# print $basename, "\n"; # print $basename, "\n";
$usedFiles{$basename} = 1; $usedFiles{$basename} = 1;
print STDERR "missing archive `$basename'\n" print STDERR "missing archive `$basename'\n"
unless defined $archives{$basename}; unless defined $readcache::archives{$basename};
} }
} }
@ -62,15 +44,15 @@ foreach my $patch (keys %patches) {
# print $basename, "\n"; # print $basename, "\n";
$usedFiles{$basename} = 1; $usedFiles{$basename} = 1;
die "missing archive `$basename'" die "missing archive `$basename'"
unless defined $archives{$basename}; unless defined $readcache::archives{$basename};
} }
} }
# Print out the dead archives. # Print out the dead archives.
foreach my $archive (@archives) { foreach my $archive (keys %readcache::archives) {
next if $archive eq "." || $archive eq ".."; next if $archive eq "." || $archive eq "..";
if (!defined $usedFiles{$archive}) { if (!defined $usedFiles{$archive}) {
print $archives{$archive}, "\n"; print $readcache::archives{$archive}, "\n";
} }
} }

View File

@ -0,0 +1,21 @@
package readcache;
use strict;
# Read the archive directories.
our %archives;
sub readDir {
my $dir = shift;
opendir(DIR, "$dir") or die "cannot open `$dir': $!";
my @as = readdir DIR;
foreach my $archive (@as) {
$archives{$archive} = "$dir/$archive";
}
closedir DIR;
}
readDir "/data/webserver/dist/nix-cache";
readDir "/data/webserver/dist/test";
readDir "/data/webserver/dist/patches";
print STDERR scalar (keys %archives), "\n";