From: Will Budic Date: Tue, 25 Jun 2024 01:01:36 +0000 (+1000) Subject: fix: Log messages with a full path. X-Git-Url: https://lifelog.hopto.org/gitweb/?a=commitdiff_plain;h=c177380e436b434b08c1705486dbb245d4aa8eb8;p=PerlCNF.git fix: Log messages with a full path. --- diff --git a/system/modules/CNFSQL.pm b/system/modules/CNFSQL.pm index 2a79e92..ed3fc01 100644 --- a/system/modules/CNFSQL.pm +++ b/system/modules/CNFSQL.pm @@ -157,10 +157,10 @@ try{ foreach my $tbl_stm(keys %tables_creat_stmts){ if(!$schema_tables{$tbl_stm} && !$schema_tables{uc $tbl_stm}){ $st = $tables_creat_stmts{$tbl_stm}; - $self->{parser}->log("CNFParser-> SQL: $st\n"); + $self->{parser}->log("CNFParser SQL -> $st\n"); try { $db->do($st); - $self->{parser}->log("CNFParser-> Created table: $tbl_stm\n"); + $self->{parser}->log("CNFParser-> Created table: $tbl_stm"); $do_not_auto_synch = 0; }catch{ die "Failed to create:\n$st\nError:$@" @@ -195,12 +195,12 @@ try{ foreach(@spec){ $q.="\"$_\" == ? and " } $q =~ s/\sand\s$//; $st="SELECT * FROM $tbl_stm WHERE $q;"; - $self->{parser}->log("CNFParser-> $st\n"); + $self->{parser}->log("SQL -> $st"); $sel = $db -> prepare($st); }else{ my $prime_key = getPrimaryKeyColumnNameWherePart($db, $tbl_stm); $st="SELECT * FROM $tbl_stm WHERE $prime_key"; - $self->{parser}->log("CNFParser-> $st\n"); + $self->{parser}->log("SQL -> $st"); $sel = $db -> prepare($st); my @r = $self->selectRecords($db,"select count(*) from $tbl_stm;")->fetchrow_array(); $hasRecords = 1 if $r[0] > 0 @@ -303,7 +303,7 @@ try{ } } } - $self->{parser}->log("CNFParser-> Insert into $tbl_stm -> [". join(',', @ins)."]\n"); + $self->{parser}->log("SQL -> Insert into $tbl_stm -> [". join(',', @ins)."]"); if($auto_increment){ $auto_increment--; splice @ins, $auto_increment, 1 @@ -313,10 +313,10 @@ try{ } $db->commit() }else{ - $self->{parser}->log("CNFParser-> No data collection is available or mapped to $tbl_stm\n"); + $self->{parser}->log("CNFParser -> No data collection is available or mapped to $tbl_stm\n"); } }else{ - $self->{parser}->log("CNFParser-> No data collection scanned for $tbl_stm\n"); + $self->{parser}->log("CNFParser -> No data collection scanned for $tbl_stm\n"); } } @@ -324,9 +324,9 @@ try{ foreach my $view(keys %views){ if(!$schema_tables{$view}){ $st = $views{$view}; - $self->{parser}->log("CNFParser-> SQL: $st\n"); + $self->{parser}->log("CNFParser SQL -> $st\n"); $db->do($st); - $self->{parser}->log("CNFParser-> Created view: $view\n") + $self->{parser}->log("CNFParser -> Created view: $view") } } undef %tables_creat_stmts; undef %tables_id_type; diff --git a/system/modules/RSSFeedsPlugin.pm b/system/modules/RSSFeedsPlugin.pm index d7cf555..504bdaa 100644 --- a/system/modules/RSSFeedsPlugin.pm +++ b/system/modules/RSSFeedsPlugin.pm @@ -10,6 +10,7 @@ use Exception::Class ('CNFPluginException'); use Clone qw(clone); use Capture::Tiny 'capture_stdout'; use FileHandle; +use File::Spec; use XML::RSS::Parser; use Date::Manip::Date; use LWP::Protocol::https; #<-- 20230829 This module some times, will not be auto installed for some reason. @@ -109,7 +110,7 @@ sub collectFeeds($self, $parser) { #$parser->log("Feed spec: @col"); my $name = $col[$hdr{Name}]; next if($feed && $feed ne $name); - my $tree = fetchFeed($self, $name, $col[$hdr{URL}], $col[$hdr{Expires}], $col[$hdr{Description}]); + my $tree = fetchFeed($self, $parser, $name, $col[$hdr{URL}], $col[$hdr{Expires}], $col[$hdr{Description}]); $parser->log("Fetched feed:".$name); if($tree && ref($$tree) eq 'CNFNode'){ if(not isCNFTrue($self->{CNF_TREE_LOADED}) && isCNFTrue($self->{CNF_TREE_STORE})){ @@ -189,7 +190,7 @@ sub getOutputDir($self){ return $output_local } -sub fetchFeed($self, $name, $url, $expires, $description){ +sub fetchFeed($self, $cnf_parser, $name, $url, $expires, $description){ my ($MD, $tree, $brew,$bench); my $console = isCNFTrue($self->{OUTPUT_TO_CONSOLE}); @@ -201,6 +202,7 @@ sub fetchFeed($self, $name, $url, $expires, $description){ my $fname = $name; $fname =~ s/[\s|\W]/_/g; $fname = $output_local."rss_$fname.rdf"; + my $rss_fullpath = File::Spec->rel2abs( $fname ); if(isCNFTrue($self->{RUN_FEEDS})){ if(-e $fname) { @@ -223,16 +225,16 @@ sub fetchFeed($self, $name, $url, $expires, $description){ } unless ( -e $fname ) { try{ - print "Fetching: $fname -> [$url] ..."; + $cnf_parser->log("Fetching: $fname -> [$url] ..."); my $res = getstore($url, $fname); if ($res == 200){ print "done!\n" }else{ - print "Error<$res>!\n"; + $cnf_parser->error("Error<$res>!\n"); `curl $url -o $fname` } }catch{ - print "Error: $@.\n"; + $cnf_parser->error( "Error: $@.\n"); return; } } @@ -245,11 +247,9 @@ sub fetchFeed($self, $name, $url, $expires, $description){ my $t1 = Benchmark->new; my $td = timediff($t1, $t0); $bench = "The XML parser for $fname took:\t".timestr($td)."\n" if $benchmark; - - print "Parsing: $fname\n"; - + $cnf_parser->log("Parsing: $rss_fullpath"); if(!$feed){ - print "Failed to parse RSS feed:$name file:$fname\n"; + $cnf_parser->error("Failed to parse RSS feed:$name file:$rss_fullpath\n"); return } diff --git a/tests/TestManager.pm b/tests/TestManager.pm index 017a9fc..9e8bb7a 100644 --- a/tests/TestManager.pm +++ b/tests/TestManager.pm @@ -13,6 +13,9 @@ my $timer = Timer::Simple->new(start => 0, string => 'human'); my $stab = ""; my $current_test_file; +use Cwd qw(getcwd); +my $CWD = getcwd; + ### # Notice All test are to be run from the project directory. # Not in the test directory. @@ -20,7 +23,7 @@ my $current_test_file; sub new { my ($class, $test_file, $self) = @_; $test_file = $0 if not $test_file; - $self = bless {test_file=> $test_file,test_cnt=>1,sub_cnt=>0,sub_err=>0}, $class; + $self = bless {test_file=> $CWD.'/'.$test_file,test_cnt=>1,sub_cnt=>0,sub_err=>0}, $class; print BLUE."Running -> ".WHITE."$test_file\n".RESET; $self->{open}=0; $current_test_file = $test_file; @@ -34,7 +37,7 @@ sub failed { ++$self->{sub_err}; my ($package, $filename, $line) = caller; $filename =~ s/^(\/(.+)\/)//gs; print BLINK. BRIGHT_RED. "\t$stab Fail ".$self->{test_cnt}.".".$sub_cnt.": $err", - BLUE, qq(\n\t$stab\t at -> ./$filename line on $line.\n), RESET; + BLUE, qq(\n\t$stab\t at -> $CWD/$filename line on $line.\n), RESET; return $self } @@ -44,7 +47,7 @@ sub passed { my $sub_cnt = ++$self->{sub_cnt}; my ($package, $filename, $line) = caller; $filename =~ s/^(\/(.+)\/)//gs; print BRIGHT_GREEN, "\t$stab Pass ".$self->{test_cnt}.".".$sub_cnt.": $msg", - BLUE, qq( at -> ./$filename line on $line.\n), RESET; + BLUE, qq( at -> $CWD/$filename line on $line.\n), RESET; return $self } @@ -54,7 +57,7 @@ sub case { $stab=""; nextCase($self) if $self->{open}; print BRIGHT_CYAN,"\tCase ".$self->{test_cnt}.": $out", - BLUE, qq(\n\t\t at -> ./$filename line on $line.\n), RESET; + BLUE, qq(\n\t\t at -> $CWD/$filename line on $line.\n), RESET; $self->{open}=1; return $self } diff --git a/tests/testSQL.pl b/tests/testSQL.pl index 9ff9338..bb14562 100644 --- a/tests/testSQL.pl +++ b/tests/testSQL.pl @@ -5,7 +5,7 @@ use Benchmark; use lib "tests"; use lib "system/modules"; -require TestManager; + require TestManager; require CNFParser; require CNFSQL; @@ -49,6 +49,7 @@ try{ $test->nextCase(); ### $test->case("Test RSS FEEDS Plugin."); + my $plugin = $cnf->property('PROCESS_RSS_FEEDS'); $test->failed() if not $plugin; if(CNFParser::_isTrue($plugin->{CONVERT_TO_CNF_NODES})){