From 2fc6c64fec914c8f6b739beee9f0f8a180ea6123 Mon Sep 17 00:00:00 2001 From: Dirk Koopman Date: Thu, 3 Feb 2022 15:03:14 +0000 Subject: [PATCH] add help text for watchdbg and grepdbg --- Changes | 2 ++ perl/DXProt.pm | 4 ++-- perl/grepdbg | 21 +++++++++++++++------ perl/watchdbg | 33 ++++++++++++++++++++++++++++++--- 4 files changed, 49 insertions(+), 11 deletions(-) diff --git a/Changes b/Changes index 99ed217c..8e5aa24b 100644 --- a/Changes +++ b/Changes @@ -1,3 +1,5 @@ +03Feb22======================================================================= +1. Improve/add the help text for grepdbg and watchdbg. 28Jan22======================================================================= 1. Fixed duplicate spot display. 2. Add "Capabilities:" line on startup (3rd line of output). diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 3c4b49f3..a16ec89f 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -556,8 +556,8 @@ sub send_dx_spot # taking into account filtering and so on foreach $dxchan (@dxchan) { next if $dxchan == $main::me; - next if $dxchan == $self && $self->is_node; - next if $dxchan == $self; +# next if $dxchan == $self && $self->is_node; + next if $dxchan == $self; # the spot is sent back to me by dx command if ($line =~ /PC61/ && !($dxchan->is_spider || $dxchan->is_user)) { unless ($pc11) { diff --git a/perl/grepdbg b/perl/grepdbg index f61d7cc1..8fa76857 100755 --- a/perl/grepdbg +++ b/perl/grepdbg @@ -8,8 +8,9 @@ # nn - is the day you what to look at: 1 is yesterday, 0 is today # and is optional if there is only one argument # -# -mmm - print the mmm lines before the match. So -10 will print -# ten lines including the line matching the regular expression. +# -mmm - print the mmm lines before the match. So -3 will print +# 4 lines altogether, the 3 lines before the line matching +# the regular expression. # # is the regular expression you are searching for, # a caseless search is done. There can be more than one @@ -60,7 +61,7 @@ foreach my $arg (@ARGV) { usage(); exit(0); } - $nolines = $arg if $arg =~ /^\d+$/; + $nolines += $arg if $arg =~ /^\d+$/; } elsif ($arg =~ /^\d+$/) { push @days, $arg; } elsif ($arg =~ /\.pm$/) { @@ -136,7 +137,7 @@ sub usage { print << "XXX"; - usage: grepdbg [nn days before] [-nnn lines before] [] [|!]... + usage: grepdbg [nn days before] [-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. @@ -150,8 +151,13 @@ sub usage is a handy way of scrolling through the debug log. + grepdbg -2 progress + + will display any line containing 'progress' and also the two lines before that. + You can install your own content and display arrangement (useful for filtering data in some complicated way). You call it like this (assuming it is called 'filter.pm'). + This is what is meant by . grepdbg filter.pm @@ -174,8 +180,11 @@ sub usage You can also add a 'sub total {...}' which executes after the last line is printed and grepdbg exits. - Read the code of this program and copy'n'paste the 'sub process' code and change - its name to 'sub handle'. Modify it to your requirements... + Read the code of this program and copy'n'paste the 'sub + process' code into a new file. Then change 'sub process' + to 'sub handle'. Add the line 'package main;' at the beginning + of the file and a line '1;' at the end and then modify it to + your requirements... XXX } diff --git a/perl/watchdbg b/perl/watchdbg index a497eff9..2b1986a7 100755 --- a/perl/watchdbg +++ b/perl/watchdbg @@ -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 +} -- 2.34.1