]> granicus.if.org Git - pgbadger/commitdiff
Remove obsolte days when we are in binary mode with noreport
authorDarold Gilles <gilles@darold.net>
Fri, 25 Mar 2016 08:51:53 +0000 (09:51 +0100)
committerDarold Gilles <gilles@darold.net>
Fri, 25 Mar 2016 08:51:53 +0000 (09:51 +0100)
pgbadger

index 227f67bac84c14acdb3a2f3dad447dcb871e0fce..16fa338836e578b9780fcd39d80b4b0337493e3b 100644 (file)
--- a/pgbadger
+++ b/pgbadger
@@ -1289,10 +1289,20 @@ if ( $saved_last_line{datetime} && $outdir && $retention && ($saved_last_line{da
                        closedir DIR;
                        foreach my $d (sort { $a <=> $b } @ddays) {
                                my $weekNumber = sprintf("%02d", POSIX::strftime("%U", 1, 1, 1, $d, $m - 1, $y - 1900)+1);
-                               if (grep(/^$y$weekNumber$/, @obsolete_weeks)) {
-                                       &logmsg('DEBUG', "Removing obsolete directory $outdir/$y/$m/$d");
-                                       &cleanup_directory("$outdir/$y/$m/$d", 1);
-                                       push(@rmdays, $d);
+                               if ($#obsolete_weeks >= 0) {
+                                       if (grep(/^$y$weekNumber$/, @obsolete_weeks)) {
+                                               &logmsg('DEBUG', "Removing obsolete directory $outdir/$y/$m/$d");
+                                               &cleanup_directory("$outdir/$y/$m/$d", 1);
+                                               push(@rmdays, $d);
+                                       }
+                               } else {
+                                       # Remove obsolte days when we are in binary mode
+                                       # with noreport - there's no week-N directory
+                                       if ("$y$weekNumber" lt $limit) {
+                                               &logmsg('DEBUG', "Removing obsolete directory $outdir/$y/$m/$d");
+                                               &cleanup_directory("$outdir/$y/$m/$d", 1);
+                                               push(@rmdays, $d);
+                                       }
                                }
                        }
                        if ($#ddays == $#rmdays) {