add mojo->master backward compatibility
[spider.git] / perl / grepdbg
index a59ea742340b5f121cd5a9352d226b5e8b873514..1282d71fb680861baa7d306bb21c9d7a9161d976 100755 (executable)
@@ -3,15 +3,24 @@
 # Program to do a grep with dates and times on the debug
 # files
 #
-# dispdbg [-nnn ...] <string>
+# grepdbg [nn] [-mm] <regular expression>
 #
-# the -nnn is the day you what to look at -1 is yesterday -0 is today
+
+# nn - is the day you what to look at: 1 is yesterday, 0 is today
 # and is optional if there is only one argument
-# <string> is the string, a caseless search is done
+#
+# -mmm - print the mmm lines before the match. So -10 will print
+# ten lines including the line matching the regular expression. 
+#
+# <regexp> is the regular expression you are searching for, 
+# a caseless search is done
 #
 #
 
 require 5.004;
+package main;
+
+use vars qw($data);
 
 # search local then perl directories
 BEGIN {
@@ -23,16 +32,19 @@ BEGIN {
        unshift @INC, "$root/local";
 }
 
+$data = "$root/data";
+
 use DXVars;
 use DXUtil;
 use DXLog;
+use Julian;
 
 use strict;
 
-use vars qw(@list $fp @today $string);
+use vars qw(@list $fp $today $string);
 
 $fp = DXLog::new('debug', 'dat', 'd');
-@today = Julian::unixtoj(time()); 
+$today = $fp->unixtoj(time()); 
 my $nolines = 1;
 my @prev;
 
@@ -51,8 +63,8 @@ die "usage: grepdbg [nn] [[-nnn] ..] <regexp>\n" unless  $string;
 
 push @list, "0" unless @list;
 for my $entry (@list) {
-       my @now = Julian::sub(@today, $entry); 
-       my $fh = $fp->open(@now); 
+       my $now = $today->sub($entry); 
+       my $fh = $fp->open($now); 
        my $line;
        if ($fh) {
                while (<$fh>) {
@@ -62,10 +74,11 @@ for my $entry (@list) {
                        shift @prev while @prev > $nolines;
                        if ($line =~ m{$string}io) {
                                for (@prev) {
-                                       my @line =  split '\^';
-                                       my $t = shift @line;
-                                       print atime($t), ' ', join('^', @line), "\n"; 
+                                       s/([\x00-\x1f\x7f-\xff])/sprintf("\\x%02X", ord($1))/eg; 
+                                       my ($t, $l) =  split /\^/, $_, 2;
+                                       print atime($t), ' ', $l, "\n"; 
                                }
+                               @prev = ();
                        }
                }
                $fp->close();