nix-super/scripts/nix-collect-garbage
Eelco Dolstra f7526febe4 * A garbage collector for installed packages. nix-collect-garbage
doesn't actually delete any packages, it just prints their
  descriptor hashes.  So we can do

    nix info $(nix-collect-garbage)

  to print out the ids of the packages that would be deleted, and

    nix delpkg $(nix-collect-garbage)

  to actually delete them.
2003-04-09 13:03:00 +00:00

22 lines
357 B
Perl
Executable file

#! /usr/bin/perl -w
my $prefix = $ENV{"NIX"} || "/nix"; # !!! use prefix
my $linkdir = "$prefix/var/nix/links";
my %alive;
open HASHES, "nix closure \$(cat $linkdir/*.hash) |";
while (<HASHES>) {
chomp;
$alive{$_} = 1;
}
close HASHES;
open HASHES, "nix listinst |";
while (<HASHES>) {
chomp;
if (!$alive{$_}) {
print "$_\n";
}
}
close HASHES;