#!/usr/bin/perl # # Rebuild world using --depclean output, 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'; } ReadMode 0; $e = join ' ', @l; if ($e) { print "\nemerge --verbose --noreplace $e\n"; `emerge --verbose --noreplace $e`; } unlink '/tmp/depclean'; print "\n";