#!/usr/bin/perl # # Record packages from --depclean to world, asking user about every ebuild # (C) 2007 Michal Gorny # Covered by GPL2 terms # # At first, I thought about writing this in bash, but it was easier for me # to use Perl. So, as tribute to shell scripts, I tried to use as few # parentheses as possible. I apologize to all, who can't read this ( ;. # use Term::ReadKey; print "Please wait, running depclean-pretend...\n"; `emerge --pretend --depclean &> /tmp/depclean`; print "Done.\n"; my $f, $d, $e, @l, @m; open $f, ') { next if !/^ (.*?)\/(.*?)$/; push @m, "$1/$2"; } @m = sort @m; foreach $e (@m) { print "\n$e ? "; print $d = ReadKey 0; last if $d eq 'q'; push @l, $e if $d eq 'y'; } unlink '/tmp/depclean'; $e = join ' ', @l; if ($e) { print "\nemerge --verbose --noreplace $e\n\nrecord/merge? "; `emerge --verbose --noreplace $e` if ReadKey 0 eq 'y'; } if ($m) { print "\ndepclean? "; `emerge --verbose --depclean` if ReadKey 0 eq 'y'; } else { print "\nNothing to depclean."; } print "\n"; ReadMode 0;