From 37b78f0d712177541ff323000411d5d1e32b1318 Mon Sep 17 00:00:00 2001 From: Heikki Levanto Date: Mon, 27 May 2013 11:07:15 +0200 Subject: [PATCH] Boldface too old dates Do not save the date-file in case of debug run, would overwrite real data (as it already did ;-( ) --- aptcheck/aptcheck.pl | 39 +++++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/aptcheck/aptcheck.pl b/aptcheck/aptcheck.pl index d49e41b..36646bb 100755 --- a/aptcheck/aptcheck.pl +++ b/aptcheck/aptcheck.pl @@ -27,9 +27,6 @@ # and architectures at the same time. Gets only the highest version from # all, and reports anything less than this. Good enough for now. # -# TODO: Get the dates from ls --full-time /var/cache/apt/archives/ -# and display next to the packages, so we can see how long they have -# been lingering. Boldface them if older than some limit #### Init use strict; @@ -129,6 +126,8 @@ my %newdates; # To be written in the new version of the file my $datefilename = "aptcheck.data"; my $dateoldfilename = "aptcheck.old"; my $thisdate = "*"; # indicates really old stuff +my $warndate; # Older than this will be boldfaced + if ( -f $datefilename ) { print "Reading dates from $datefilename\n" if $debug; open F, $datefilename or die "Could not open date file $datefilename: $!"; @@ -142,6 +141,9 @@ if ( -f $datefilename ) { close F; $thisdate = `date +%F`; chomp($thisdate); + $warndate = `date +%F -d "30 days ago"` ; ; + chomp($warndate); + print "Dates: now: '$thisdate' warn: '$warndate'\n" if $debug; } else { print "No datefile $datefilename found, starting from scratch\n"; } @@ -218,7 +220,12 @@ for my $hline ( sort( split("\n",$hostlist) ) ) { } else { $newdates{$datekey} = $thisdate; } - $det .= "" . $newdates{$datekey} . ""; + my $dispdate = $newdates{$datekey}; + # if ( $dispdate lt $warndate ) { + if ( 0 ) { # manual packages don't need to be highlighted + $dispdate = "$dispdate !"; + } + $det .= "" . $dispdate . ""; $det .= "\n"; my $key = "$restrname"; if ( !$summary{$key} ) { @@ -271,7 +278,11 @@ for my $hline ( sort( split("\n",$hostlist) ) ) { } else { $newdates{$datekey} = $thisdate; } - $det .= "" . $newdates{$datekey} . ""; + my $dispdate = $newdates{$datekey}; + if ( ( $dispdate lt $warndate ) && ( $src =~ /Security/) ) { + $dispdate = "$dispdate !"; + } + $det .= "" . $dispdate . ""; $det .= "\n"; } @@ -304,14 +315,18 @@ for my $hline ( sort( split("\n",$hostlist) ) ) { $table .= "\n"; # Save the date file -`mv -f $datefilename $dateoldfilename`; -open F, ">$datefilename" or die "Could not open date file $datefilename for writing"; -for my $k (sort(keys(%newdates)) ) { - print F "$k " . $newdates{$k}. "\n"; - print "date for '$k' '" . $newdates{$k}. "'\n" if $debug; +if ( ! $debug ) { + `mv -f $datefilename $dateoldfilename`; + open F, ">$datefilename" or die "Could not open date file $datefilename for writing"; + for my $k (sort(keys(%newdates)) ) { + print F "$k " . $newdates{$k}. "\n"; + print "date for '$k' '" . $newdates{$k}. "'\n" if $debug; + } + close F + or die "Could not close date file $datefilename: $!"; +} else { + print "Not updating the date file, this is a debug run\n"; } -close F - or die "Could not close date file $datefilename: $!"; # Page header my $outfile = "/tmp/aptcheck.html"; -- 1.7.10.4