X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~webstump/git?a=blobdiff_plain;f=xlog%2Fbin%2Freport;h=92a6a5e2793004467b195b4976a09f8cd3bc35d9;hb=HEAD;hp=aef8458c91932a5d164a0d25ca146a7823fa989d;hpb=18a2942afeea142e0881ed079660330d4da3c9e2;p=modbot-mtm.git diff --git a/xlog/bin/report b/xlog/bin/report index aef8458..92a6a5e 100755 --- a/xlog/bin/report +++ b/xlog/bin/report @@ -1,13 +1,34 @@ #!/usr/bin/perl -w -our ($ng,$staticfiles,@ARGV) = @ARGV; -chdir $ng or die $!; - use strict (qw(vars)); use IO::Handle; use POSIX; use CGI qw/:standard *table end_* -no_xhtml/; +our $timesquash = 3; +# no. of digits at end of time to replace with x, 0..4 +our %reasonshow = qw(approve 1 reject 1); +# no. of words to show + +for (;;) { + last unless @ARGV; + last unless $ARGV[0] =~ m/^-/; + $_ = shift @ARGV; + last if m/^--?$/; + while (m/^-./) { + if (s/^-t([0-4])/-/) { + $timesquash= $1; + } elsif (s/^-r(\w+)=(\d)$//) { + $reasonshow{$1}= $2; + } else { + die "bad option $_ ?"; + } + } +} + +our ($ng,$staticfiles,@ARGV) = @ARGV; +chdir $ng or die $!; + our @lines= (); our @s; our $oddeven = "o"; @@ -22,8 +43,11 @@ sub processlog ($$) { chomp; @s= split /\t/; push @s, '' if @s<=6; - $s[0]= strftime "%Y-%m-%d %H:%M %Z", localtime $s[0]; - $s[0] =~ s/(\d+\:\d)\d/${1}x/; + $s[0]= strftime "%Y-%m-%d %H:%M:%S %Z", localtime $s[0]; + for (my $i=0; $i<$timesquash; $i++) { + $s[0] =~ s/(\d\d:[\d:]*)\d/$1x/; + } + $s[0] =~ s/:xx / /; &$processline(); $oddeven =~ y/oe/eo/; } @@ -55,6 +79,14 @@ sub processline_print () { $sp[5]= a({ href=>"$staticfiles/nr-$s[6].txt" }, $sp[5] ); } + if ($sp[5] =~ m/^\w+\b/ && + defined (my $reasonshow= $reasonshow{$&})) { + my @reas= split /\s+/, $sp[5]; + $reasonshow--; + $#reas = $reasonshow if $#reas > $reasonshow; + $sp[5] = join ' ', @reas; + } + print "$sp[0]"; print "$sp[1] $sp[2]"; print td([@sp[3..5]]),"\n";