From 43fa1c20e7e98819925b16d60d6b7c9e87c93fca Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 22 Feb 2006 14:35:19 +0000 Subject: [PATCH] * Separate the cache reading code. --- scripts/maintenance/gc-releases.pl | 32 +++++++----------------------- scripts/maintenance/readcache.pm | 21 ++++++++++++++++++++ 2 files changed, 28 insertions(+), 25 deletions(-) create mode 100644 scripts/maintenance/readcache.pm diff --git a/scripts/maintenance/gc-releases.pl b/scripts/maintenance/gc-releases.pl index 9c81a68e83..67654835af 100755 --- a/scripts/maintenance/gc-releases.pl +++ b/scripts/maintenance/gc-releases.pl @@ -1,29 +1,11 @@ -#! /usr/bin/perl -w -I. +#! /usr/bin/perl -w -I. -I.. use strict; use readmanifest; +use readcache; -# Read the archive directories. -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"; +print STDERR scalar (keys %readcache::archives), "\n"; # Read the manifests. @@ -50,7 +32,7 @@ foreach my $narFile (keys %narFiles) { # print $basename, "\n"; $usedFiles{$basename} = 1; 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"; $usedFiles{$basename} = 1; die "missing archive `$basename'" - unless defined $archives{$basename}; + unless defined $readcache::archives{$basename}; } } # Print out the dead archives. -foreach my $archive (@archives) { +foreach my $archive (keys %readcache::archives) { next if $archive eq "." || $archive eq ".."; if (!defined $usedFiles{$archive}) { - print $archives{$archive}, "\n"; + print $readcache::archives{$archive}, "\n"; } } diff --git a/scripts/maintenance/readcache.pm b/scripts/maintenance/readcache.pm new file mode 100644 index 0000000000..c0657913ea --- /dev/null +++ b/scripts/maintenance/readcache.pm @@ -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";