########################################################################## # $Id: applydate,v 1.4 2007/02/16 04:38:13 bjorn Exp $ ########################################################################## # $Log: applydate,v $ # Revision 1.4 2007/02/16 04:38:13 bjorn # Check timestamp using proper "seconds since epoch" format, by Jason. # # Revision 1.3 2005/06/18 19:36:32 bjorn # Bug fix from Mike Frysinger for incorrect variable reference # # Revision 1.2 2005/05/03 19:33:39 bjorn # Added support for new date ranges # # Revision 1.1 2005/04/20 22:13:32 bjorn # Initial file by Matt Brown # ########################################################################## ########################################################################## # This was written by: Matt Brown, mdbrown at uwaterloo dot ca # # Please send all comments, suggestions, bug reports, # etc, to logwatch-devel@logwatch.org. ########################################################################## # Processes emerge logs to remove entries outside the desired date range use strict; use Logwatch ':dates'; use POSIX qw(strftime); my $Debug = $ENV{'LOGWATCH_DEBUG'} || 0; # Set the date we are looking for based on the desired date range my $SearchDate = TimeFilter('%b %e %H:%M:%S'); if ($Debug > 5) { print STDERR "DEBUG: Inside applydate (emerge)...\n"; print STDERR "DEBUG: Looking For: $SearchDate\n"; } # Examine each line of the file, writing out only the lines that are within # the date range my $emergeTime; while (defined(my $line = <STDIN>)) { $line =~ /^(\d+):/; $emergeTime = strftime('%b %e %H:%M:%S', localtime($1)); if ($Debug > 5) { print STDERR "DEBUG: converted time: $emergeTime\n"; } if ($emergeTime =~ /$SearchDate/) { print $line; } }