########################################################################## # $Id: emerge,v 1.2 2007/01/15 14:38:34 mike Exp $ ########################################################################## ######################################################## # This was written and is maintained by: # Laurent DUFOUR <laurent.dufour@havas.com>,<dufour_l@hotmail.com> # based on the work of # Kirk Bauer <kirk@kaybee.org> # # Please send all comments, suggestions, bug reports, # etc, to laurent.dufour@havas.com ######################################################## $Debug = $ENV{'LOGWATCH_DEBUG'} || 0; if ( $Debug >= 5 ) { print STDERR "\n\nDEBUG: Inside EMERGE Filter \n\n"; $DebugCounter = 1; } while (defined($ThisLine = <STDIN>)) { if ( $Debug >= 5 ) { print STDERR "DEBUG($DebugCounter): $ThisLine"; $DebugCounter++; } $ThisLine =~ s/^[^ ]* [^ ]* //; if ( ($ThisLine =~ /Finished. Cleaning up/) or ($ThisLine =~ /exiting successfully/) or ($ThisLine =~ /terminating/) or ($ThisLine =~ /Compiling/) or ($ThisLine =~ /=== sync/) or ($ThisLine =~ /Starting rsync with/) or ($ThisLine =~ /Merging/) or ($ThisLine =~ /Unmerging./) or ($ThisLine =~ /AUTOCLEAN/) or ($ThisLine =~ />>> emerge /) or ($ThisLine =~ /\*\*\* emerge /) or ($ThisLine =~ /Cleaning/) or ($ThisLine =~ /Updating world file/) or ($ThisLine =~ /Post-Build/) ) { # Don't care about these... } elsif ( $ThisLine =~ s/emerge on: ([^ ]+) $2/$1 / ) { $EmergeStarted++; } elsif ( $ThisLine =~ s/Sync completed ([^ ]+) $2/$1 / ) { $EmergeSyncCompleted{$ThisLine}++; } elsif ( $ThisLine =~ s/completed emerge ([^ ]+) $2/$1 to / ) { $PackageInstalled{$ThisLine}++; $NumberOfPackageInstalled++; } elsif ( $ThisLine =~ s/unmerge success: $2/$1 to / ) { $PackageUnmerged{$ThisLine}++; $NumberOfPackageUnmerged++; } elsif ( $ThisLine =~ s/^Dep Installed: ([^ ]+)/$1 / ) { $PackageDepInstalled{$ThisLine}++; } else { # Report any unmatched entries... push @OtherList,$ThisLine; } } if ($EmergeStarted > 0) { print "\nEmerge Started: $EmergeStarted times\n"; } if (keys %EmergeSyncCompleted) { print "\nEmerge Sync Completed:\n"; foreach $ThisOne (keys %EmergeSyncCompleted) { print " " . $ThisOne; } } if (keys %PackageUnmerged) { print "\nPackage Unmerged: $NumberOfPackageUnmerged times\n"; foreach $ThisOne (keys %PackageUnmerged) { print " " . $ThisOne; } } if (keys %PackageInstalled) { print "\nPackage Installed: $NumberOfPackageInstalled times\n"; foreach $ThisOne (keys %PackageInstalled) { print " " . $ThisOne; } } if (keys %PackageDepInstalled) { print "\nPackage Dependency Installed:\n"; foreach $ThisOne (keys %PackageDepInstalled) { print " " . $ThisOne; } } if (keys %PackageUpdated) { print "\nPackage Updated:\n"; foreach $ThisOne (keys %PackageUpdated) { print " ". $ThisOne; } } if ($#OtherList >= 0) { print "\n**Unmatched Entries**\n"; print @OtherList; } exit(0); # vi: shiftwidth=3 tabstop=3 syntax=perl et