projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix Filtering, RBN changes
[spider.git]
/
perl
/
grepdbg
diff --git
a/perl/grepdbg
b/perl/grepdbg
index f133a143448972d0e75e5f019fb9015665ef77ff..80a918a07cc7a0a6a998d15240dd26746711bd75 100755
(executable)
--- a/
perl/grepdbg
+++ b/
perl/grepdbg
@@
-5,7
+5,6
@@
#
# grepdbg [nn] [-mm] <regular expression>
#
#
# grepdbg [nn] [-mm] <regular expression>
#
-
# nn - is the day you what to look at: 1 is yesterday, 0 is today
# and is optional if there is only one argument
#
# nn - is the day you what to look at: 1 is yesterday, 0 is today
# and is optional if there is only one argument
#
@@
-15,6
+14,11
@@
# <regexp> is the regular expression you are searching for,
# a caseless search is done
#
# <regexp> is the regular expression you are searching for,
# a caseless search is done
#
+# If you specify something that likes a filename and that filename
+# has a .pm on the end of it and it exists then rather than doing
+# the regex match it executes the "main::handle()" function passing
+# it one line at a time.
+#
#
require 5.004;
#
require 5.004;
@@
-54,6
+58,15
@@
for my $arg (@ARGV) {
push @list, $arg;
} elsif ($arg =~ /^\d+$/) {
$nolines = $arg;
push @list, $arg;
} elsif ($arg =~ /^\d+$/) {
$nolines = $arg;
+ } elsif ($arg =~ /\.pm$/) {
+ if (-e $arg) {
+ my $fn = $arg;
+ $fn =~ s/\.pm$//;
+ eval { require $arg};
+ die "requiring $fn failed $@" if $@;
+ } else {
+ die "$arg not found";
+ }
} else {
$string = $arg;
last;
} else {
$string = $arg;
last;
@@
-67,12
+80,22
@@
for my $entry (@list) {
my $now = $today->sub($entry);
my $fh = $fp->open($now);
my $line;
my $now = $today->sub($entry);
my $fh = $fp->open($now);
my $line;
+ my $do;
+
+ if (main->can('handle')) {
+ $do = \&handle;
+ } else {
+ $do = \&process;
+ }
+
+ begin() if main->can('begin');
if ($fh) {
while (<$fh>) {
if ($fh) {
while (<$fh>) {
-
process
($_);
+
&$do
($_);
}
$fp->close();
}
}
$fp->close();
}
+ end() if main->can('end');
}
sub process
}
sub process
@@
-85,7
+108,8
@@
sub process
for (@prev) {
s/([\x00-\x1f\x7f-\xff])/sprintf("\\x%02X", ord($1))/eg;
my ($t, $l) = split /\^/, $_, 2;
for (@prev) {
s/([\x00-\x1f\x7f-\xff])/sprintf("\\x%02X", ord($1))/eg;
my ($t, $l) = split /\^/, $_, 2;
- print atime($t), ' ', $l, "\n";
+ print atime($t), ' ', $l, "\n";
+ print '----------------' if $nolines > 1;
}
@prev = ();
}
}
@prev = ();
}
@@
-93,6
+117,6
@@
sub process
sub usage
{
sub usage
{
- die "usage: grepdbg [nn
] [[-nnn] ..] <regexp>
\n";
+ die "usage: grepdbg [nn
days before] [-nnn lines before] [<regexp>|<perl file name>]
\n";
}
exit(0);
}
exit(0);