#!/usr/bin/perl # # # use strict; use diagnostics; use warnings; my ($package,$status,$line) = (); my @depclean = (); my $vdb_path = qx(portageq vdb_path); chomp($vdb_path); format STDOUT_TOP = Atom: Status: (required in world) . format STDOUT = @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $package, $status . print "Examining: $vdb_path/world\n\n"; open(WORLD,"<$vdb_path/world") || die("world: $!"); foreach $package () { chomp $package; @depclean = qx(emerge -pv --depclean "$package"); foreach $line ( @depclean ) { if ( $line =~ ">>> These are the packages that would be unmerged:" ) { $status = "needed"; write; } elsif ( $line =~ ">>> No packages selected for removal by depclean" ) { $status = "unneeded"; write; } else { $status = "Error: Something bad happened"; } } }