From http://www.jwz.org/xscreensaver/xscreensaver-5.27.tar.gz
[xscreensaver] / OSX / updates.pl
index bff462d64640149893c16e9f61e58672d86be3d3..20d082f4bff1c5ee2a763a0a14ab23481d3cf954 100755 (executable)
@@ -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" .