X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2Fwatchdbg;h=2b1986a738bd4e4236b582ac4d1957ce6d2f4696;hb=2fc6c64fec914c8f6b739beee9f0f8a180ea6123;hp=79a72f600768c1e7a251e4ba13234592d032df40;hpb=4b207544da78b182bd12e94eab01451694749012;p=spider.git diff --git a/perl/watchdbg b/perl/watchdbg index 79a72f60..2b1986a7 100755 --- a/perl/watchdbg +++ b/perl/watchdbg @@ -27,7 +27,7 @@ BEGIN { } use IO::File; -use DXVars; +use SysVar; use DXUtil; use DXLog; @@ -37,11 +37,20 @@ my $fp = DXLog::new('debug', 'dat', 'd'); my $today = $fp->unixtoj(time()); my $fh = $fp->open($today) or die $!; my $nolines = 1; -$nolines = shift if $ARGV[0] =~ /^-?\d+$/; -$nolines = abs $nolines if $nolines < 0; -my @patt = @ARGV; +my @patt; my @prev; +while (@ARGV) { + my $arg = shift; + if ($arg =~ /^-+(\d+)/) { + $nolines += $1; + next; + } + usage(), exit(0) if $arg =~ /^-+[h\?]/i; + push @patt, $arg; +} + + # seek to end of file $fh->seek(0, 2); for (;;) { @@ -98,3 +107,21 @@ sub printit } } exit(0); + +sub usage +{ + print << "XXX"; + + usage: watchdbg [-nnn lines before] [|!]... + + You can have more than one with an implicit 'and' between them. All + are caseless. It's recommended to put 'not' (!) first in any list. + Don't forget that you are doing this in a shell and you may need to quote your + s. + + watchdbg -2 progress + + will display any line containing 'progress' and also the two lines before that. + +XXX +}