--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.perltidyrc Wed Dec 02 07:47:31 2009 +0100
@@ -0,0 +1,2 @@
+--paren-tightness=2
+--square-bracket-tightness=2
--- a/postgrep Wed Dec 02 07:37:59 2009 +0100
+++ b/postgrep Wed Dec 02 07:47:31 2009 +0100
@@ -5,20 +5,27 @@
use Memoize;
use Smart::Comments;
+die "Usage: $0 pattern [file]…\n" if !@ARGV;
+
+my $pattern = shift;
+
my %msglog;
my %removed;
memoize("str2time");
while (<>) {
- chomp;
- /^(?<date>.{15})
- \s(?<host>\S+)
- \s(?<service>\S+):
- \s(?<pfid>[[:xdigit:]]+):
- \s(?<rest>.*)
- /x or next;
+ if (!/^(?<date>.{15})
+ \s(?<host>\S+)
+ \s(?<service>\S+):
+ \s(?<pfid>[[:xdigit:]]+):
+ \s(?<rest>.*)/x) {
+
+ print "$_\n" if /$pattern/i;
+ next;
+
+ }
my $ts = str2time($+{date});
@@ -38,7 +45,8 @@
foreach (grep { ($ts - $_) > 60 } keys %removed) {
foreach (@{delete $removed{$_}}) {
- print join "\n", @{delete $msglog{$_}}, "", "";
+ print @{delete $msglog{$_}}, "\n"
+ if /$pattern/i ~~ @{$msglog{$_}};
}
}
@@ -47,5 +55,6 @@
# the rest
foreach (values %msglog) {
- print join "\n", @$_, "", "";
+ print join @$_, "\n"
+ if /$pattern/ ~~ @{$msglog{$_}};
}