]> git.sesse.net Git - webpdf/blobdiff - last.pl
Automatically clean up old output files etc. after N days (configurable).
[webpdf] / last.pl
diff --git a/last.pl b/last.pl
index e668edfb799a4ab85a41a10dd19661e2531646b5..602473901f71f49dfa106ddbef2c63eada94a441 100755 (executable)
--- a/last.pl
+++ b/last.pl
@@ -6,14 +6,24 @@ use strict;
 use warnings;
 require './config.pm';
 
-my $num_last = 20;
-
 # Find the latest N PNG thumbnails. Somewhat ineffective, but I assume 
 # we'll get to that later :-)
 my @thumbnails = (sort { -M $a <=> -M $b } <$pdfweb::config::outputdir/*.png>);
-my $real_num_last = scalar @thumbnails;
-if ($real_num_last > $num_last) {
-       $real_num_last = $num_last;
+my $real_show_last = scalar @thumbnails;
+if ($real_show_last > $pdfweb::config::show_last) {
+       $real_show_last = $pdfweb::config::show_last;
+}
+
+# This is probably the simplest place to clean up files that we no longer
+# need having around.
+for my $t (@thumbnails[$pdfweb::config::show_last..$#thumbnails]) {
+       if (-M $t > $pdfweb::config::minimum_age) {
+               (my $base = $t) =~ s/\.png$//;
+               my @to_delete = <$base*>;
+
+               warn "Deleting " . join(', ', @to_delete);
+               unlink @to_delete;
+       }
 }
 
 # Sorry, no HTML templating. I didn't want to pull in yet another
@@ -35,12 +45,12 @@ Content-type: text/html; charset=utf-8
     <meta name="MSSmartTagsPreventParsing" content="TRUE" />
   </head>
   <body>
-    <h1>Last $real_num_last uploads</h1>
+    <h1>Last $real_show_last uploads</h1>
     
     <p><a href="http://pdf.sesse.net/">Back to the converter</a></p>
 EOF
 
-for my $t (@thumbnails[0..$num_last-1]) {
+for my $t (@thumbnails[0..$pdfweb::config::show_last-1]) {
        (my $descname = $t) =~ s/\.png$/.desc/;
        open DESC, "<$descname"
                or next;
@@ -48,7 +58,7 @@ for my $t (@thumbnails[0..$num_last-1]) {
        close DESC;
 
        if (length($desc) > 30) {
-               $desc = substr $desc, 0, 30;
+               $desc = substr($desc, 0, 30) . " ...";
        }
        $desc = HTML::Entities::encode_entities($desc);