projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add various stats commands
[spider.git]
/
perl
/
watchdbg
diff --git
a/perl/watchdbg
b/perl/watchdbg
index 4ac24be1b02dd34c69b1d0bb9b629640a7edf400..348ac8fe7bbbe5ab49101d635c429b9a66113ed3 100755
(executable)
--- a/
perl/watchdbg
+++ b/
perl/watchdbg
@@
-6,6
+6,7
@@
# examples:-
#
# watchdbg g1tlh # watch everything g1tlh does
# examples:-
#
# watchdbg g1tlh # watch everything g1tlh does
+# watchdbg 2 PCPROT # watch all PCPROT messages + up to 2 lines before
# watchdbg gb7baa gb7djk # watch the conversation between BAA and DJK
#
# watchdbg gb7baa gb7djk # watch the conversation between BAA and DJK
#
@@
-29,9
+30,11
@@
use DXLog;
use strict;
my $fp = DXLog::new('debug', 'dat', 'd');
use strict;
my $fp = DXLog::new('debug', 'dat', 'd');
-my @today = Julian::unixtoj(time());
-my $fh = $fp->open(@today) or die $!;
-my $nolines = shift if $ARGV[0] =~ /^\d+$/ || 1;
+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 $exp = join '|', @ARGV;
my @prev;
my $exp = join '|', @ARGV;
my @prev;
@@
-43,7
+46,10
@@
for (;;) {
if ($exp) {
push @prev, $line;
shift @prev while @prev > $nolines;
if ($exp) {
push @prev, $line;
shift @prev while @prev > $nolines;
- printit(@prev) if $line =~ m{(?:$exp)}oi;
+ if ($line =~ m{(?:$exp)}oi) {
+ printit(@prev);
+ @prev = ();
+ }
} else {
printit($line);
}
} else {
printit($line);
}
@@
-52,16
+58,16
@@
for (;;) {
# check that the debug hasn't rolled over to next day
# open it if it has
# check that the debug hasn't rolled over to next day
# open it if it has
- my
@now = Julian::
unixtoj(time());
- if ($today
[1] != $now[1]
) {
+ my
$now = $fp->
unixtoj(time());
+ if ($today
->cmp($now)
) {
$fp->close;
my $i;
for ($i = 0; $i < 20; $i++) {
$fp->close;
my $i;
for ($i = 0; $i < 20; $i++) {
- last if $fh = $fp->open(
@
now);
+ last if $fh = $fp->open(
$
now);
sleep 5;
}
die $! if $i >= 20;
sleep 5;
}
die $! if $i >= 20;
-
@today = @
now;
+
$today = $
now;
}
}
}
}
}
}
@@
-70,12
+76,13
@@
sub printit
{
while (@_) {
my $line = shift;
{
while (@_) {
my $line = shift;
- my @line = split '\^', $line;
- my $t = shift @line;
+ chomp $line;
+ $line =~ s/([\x00-\x1f\x7f-\xff])/sprintf("\\x%02X", ord($1))/eg;
+ my ($t, $l) = split /\^/, $line, 2;
my ($sec,$min,$hour) = gmtime((defined $t) ? $t : time);
my $buf = sprintf "%02d:%02d:%02d", $hour, $min, $sec;
my ($sec,$min,$hour) = gmtime((defined $t) ? $t : time);
my $buf = sprintf "%02d:%02d:%02d", $hour, $min, $sec;
- print $buf, ' ',
join('^', @line)
;
+ print $buf, ' ',
$l, "\n"
;
}
}
exit(0);
}
}
exit(0);