From http://www.jwz.org/xscreensaver/xscreensaver-5.35.tar.gz
[xscreensaver] / OSX / updates.pl
index bff462d64640149893c16e9f61e58672d86be3d3..5938a4aee55b95bb03e1d1304a0f2c6959d4b864 100755 (executable)
@@ -21,12 +21,12 @@ use open ":encoding(utf8)";
 use POSIX;
 
 my $progname = $0; $progname =~ s@.*/@@g;
-my $version = q{ $Revision: 1.1 $ }; $version =~ s/^[^\d]+([\d.]+).*/$1/;
+my ($version) = ('$Revision: 1.2 $' =~ m/\s(\d[.\d]+)\s/s);
 
 my $verbose = 0;
 my $debug_p = 0;
 
-my $base_url = "http://www.jwz.org/";
+my $base_url = "https://www.jwz.org/";
 my $priv_key_file = "$ENV{HOME}/.ssh/sparkle_dsa_priv.pem";
 my $sign_update = "./sign_update.rb";
 
@@ -51,6 +51,8 @@ sub generate_xml($$$$) {
       next unless $v;
       $sigs{$v}  = $sig  if $sig;
       $dates{$v} = $date if $date;
+      print STDERR "$progname: $v: " . ($date || '?') . "\n"
+        if ($verbose > 1);
     }
   }
 
@@ -65,6 +67,7 @@ sub generate_xml($$$$) {
   $body =~ s/^(\d+\.\d+[ \t])/\001$1/gm;
   my @log = split (/\001/, $body);
   shift @log;
+  my $count = 0;
   foreach my $log (@log) {
     my ($v1, $entry) = ($log =~ m/^(\d+\.\d+)\s+(.*)$/s);
 
@@ -91,8 +94,10 @@ sub generate_xml($$$$) {
       }
     }
 
-    my $url = ("${base_url}$app_name/" .
-               ($zip && -f "$www_dir/$zip" ? $zip : ""));
+    my $publishedp = ($zip && -f "$www_dir/$zip");
+    $publishedp = 1 if ($count == 0);
+
+    my $url = ("${base_url}$app_name/" . ($publishedp ? $zip : ""));
 
     $url =~ s@DaliClock/@xdaliclock/@gs if $url; # Kludge
 
@@ -108,6 +113,9 @@ sub generate_xml($$$$) {
     # Re-generate the sig if the file date changed.
     $sig = undef if ($odate && $odate ne $date);
 
+    print STDERR "$progname: $v1: $date " . ($sig ? "Y" : "N") . "\n"
+      if ($verbose > 1);
+
     if (!$sig && $zip) {
       local %ENV = %ENV;
       $ENV{PATH} = "/usr/bin:$ENV{PATH}";
@@ -115,7 +123,7 @@ sub generate_xml($$$$) {
       $sig =~ s/\s+//gs;
     }
 
-    my $enc = ($zip && -f "$www_dir/$zip"
+    my $enc = ($publishedp
                ? ("<enclosure url=\"$url\"\n" .
                   " sparkle:version=\"$v1\"\n" .
                   " sparkle:dsaSignature=\"$sig\"\n" .
@@ -134,9 +142,10 @@ sub generate_xml($$$$) {
     $item =~ s/^/  /gm;
 
     # I guess Sparkle doesn't like info-only items.
-    $item = '' unless ($zip && -f "$www_dir/$zip");
+    $item = '' unless $publishedp;
 
     $rss .= $item;
+    $count++;
   }
 
   $rss = ("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" .