about summary refs log tree commit diff
diff options
context:
space:
mode:
-rwxr-xr-xscripts/maintenance/gc-releases.pl32
-rw-r--r--scripts/maintenance/readcache.pm21
2 files changed, 28 insertions, 25 deletions
diff --git a/scripts/maintenance/gc-releases.pl b/scripts/maintenance/gc-releases.pl
index 9c81a68e835b..67654835afc1 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 000000000000..c0657913eafc
--- /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";