Index: pflogsumm.1 --- pflogsumm.1.orig 2012-02-05 23:34:29.000000000 +0100 +++ pflogsumm.1 2012-02-06 08:49:47.000000000 +0100 @@ -171,6 +171,8 @@ \& \& \-d today generate report for just today \& \-d yesterday generate report for just "yesterday" +\& \-d YYYY-MM-DD generate report for just "YYYY-MM-DD" +\& (Really takes string Date::Parse will handle) \& \& \-\-deferral\-detail \& Index: pflogsumm.pl --- pflogsumm.pl.orig 2012-02-05 23:25:25.000000000 +0100 +++ pflogsumm.pl 2012-02-06 20:53:39.000000000 +0100 @@ -10,7 +10,7 @@ =head1 SYNOPSIS - pflogsumm.pl -[eq] [-d ] [--detail ] + pflogsumm.pl -[eq] [-d ] [--detail ] [--bounce-detail ] [--deferral-detail ] [-h ] [-i|--ignore-case] [--iso-date-time] [--mailq] [-m|--uucp-mung] [--no-no-msg-size] [--problems-first] @@ -43,6 +43,9 @@ -d today generate report for just today -d yesterday generate report for just "yesterday" + -d YYYY-MM-DD generate report for just "YYYY-MM-DD" + (Actually this will take any date string + parsable by the perl Date::Parse module) --deferral-detail @@ -398,6 +401,7 @@ use strict; use locale; use Getopt::Long; +use Date::Parse; eval { require Date::Calc }; my $hasDateCalc = $@ ? 0 : 1; @@ -639,8 +643,8 @@ --$msgMon; } - unless((($cmd, $qid) = $logRmdr =~ m#^(?:postfix|$syslogName)(?:/(?:smtps|submission))?/([^\[:]*).*?: ([^:\s]+)#o) == 2 || - (($cmd, $qid) = $logRmdr =~ m#^((?:postfix)(?:-script)?)(?:\[\d+\])?: ([^:\s]+)#o) == 2) + unless((($cmd, $qid) = $logRmdr =~ m#^<[a-z]+>\s+(?:postfix|$syslogName)(?:/(?:smtps|submission))?/([^\[:]*).*?: ([^:\s]+)#o) == 2 || + (($cmd, $qid) = $logRmdr =~ m#^<[a-z]+>\s+((?:postfix)(?:-script)?)(?:\[\d+\])?: ([^:\s]+)#o) == 2) { #print UNPROCD "$_"; next; @@ -1514,11 +1518,11 @@ # Back up to yesterday $time -= ((localtime($time))[2] + 2) * 3600; } elsif($dateOpt ne "today") { - die "$usageMsg\n"; + $time = str2time($dateOpt); } my ($t_mday, $t_mon, $t_year) = (localtime($time))[3,4,5]; - return sprintf("%s %2d", $monthNames[$t_mon], $t_mday), sprintf("%04d-%02d-%02d", $t_year+1900, $t_mon+1, $t_mday); + return sprintf("%s %02d", $monthNames[$t_mon], $t_mday), sprintf("%04d-%02d-%02d", $t_year+1900, $t_mon+1, $t_mday); } # if there's a real domain: uses that. Otherwise uses the IP addr.