Module: tools Branch: master Commit: 68967d664f38eb705ee3769804160567e831ee0f URL: http://source.winehq.org/git/tools.git/?a=commit;h=68967d664f38eb705ee376980...
Author: Alexandre Julliard julliard@winehq.org Date: Fri Jul 9 12:42:46 2010 +0200
patches: Generate a static html index so that we don't need to delete old patch files.
---
patches/{index.cgi => update} | 44 +++++++++++++++++++++++----------------- 1 files changed, 25 insertions(+), 19 deletions(-)
diff --git a/patches/index.cgi b/patches/update similarity index 82% rename from patches/index.cgi rename to patches/update index 5016363..e18d32d 100755 --- a/patches/index.cgi +++ b/patches/update @@ -1,6 +1,6 @@ #!/usr/bin/perl -w # -# Patches CGI script +# Update the patches data and index file # # Copyright 2009 Alexandre Julliard # @@ -80,7 +80,8 @@ my @legend = "<li>The patch fixes a failure but doesn't remove the corresponding todo_wine.</li></ul>" ], );
-my $dir = "data"; +my $dir = "$ENV{HOME}/patches"; +my $dest = "/home/winehq/opt/source/patches"; my %patches;
sub format_author($) @@ -90,13 +91,14 @@ sub format_author($) return $_; }
-print header( -charset => "utf-8" ); -print start_html(-title=>"Patches list", - -encoding=>"utf-8", - -style=>{src=>"patches.css"}); +open INDEX, "> $dest/index.html.new" or die "cannot create $dest/index.html.new";
-print "<div class="main">\n"; -print "<table class="main"><tr><th class="id">ID</th>", +print INDEX start_html(-title=>"Patches list", + -encoding=>"utf-8", + -style=>{src=>"patches.css"}); + +print INDEX "<div class="main">\n"; +print INDEX "<table class="main"><tr><th class="id">ID</th>", "<th class="status">Status</th>", "<th class="author">Author</th>", "<th class="subject">Subject</th>", @@ -147,33 +149,37 @@ my $row = 0; foreach my $file (sort { $patches{$b}->{"order"} <=> $patches{$a}->{"order"} } keys %patches) { my $patch = $patches{$file}; - printf "<tr class="%s %s"><td class="id">%s</td><td class="status"><a href="#legend">%s</a></td><td class="author">%s</td>", + printf INDEX "<tr class="%s %s"><td class="id">%s</td><td class="status"><a href="#legend">%s</a></td><td class="author">%s</td>", $row & 1 ? "odd" : "even", $patch->{"status"}, $file, $status_descr{$patch->{"status"}} || $patch->{"status"}, escapeHTML($patch->{"author"}); - printf "<td class="subject"><a href="data/$file">%s</a></td>", + printf INDEX "<td class="subject"><a href="data/$file">%s</a></td>", escapeHTML($patch->{"subject"}); if ($patch->{"testbot"} eq "Failed") { - print "<td class="testbot botfail"><a href="data/$file.testfail">Failed</a></td>"; + print INDEX "<td class="testbot botfail"><a href="data/$file.testfail">Failed</a></td>"; } else { - printf "<td class="testbot">%s</td>", $patch->{"testbot"}; + printf INDEX "<td class="testbot">%s</td>", $patch->{"testbot"}; } - print "</tr>\n"; + print INDEX "</tr>\n"; $row++; } -print "</table></div>\n"; +print INDEX "</table></div>\n";
$row = 0; -print "<div class="legend"><h2><a name="legend">Legend</a></h2>\n"; -print "<table class="legend"><tr><th class="status">Status</th><th class="causes">Possible causes</th></tr>\n"; +print INDEX "<div class="legend"><h2><a name="legend">Legend</a></h2>\n"; +print INDEX "<table class="legend"><tr><th class="status">Status</th><th class="causes">Possible causes</th></tr>\n"; foreach my $status (@legend) { - printf "<tr class="%s"><td class="status %s">%s</td><td class="causes">%s</td></tr>\n", + printf INDEX "<tr class="%s"><td class="status %s">%s</td><td class="causes">%s</td></tr>\n", $row & 1 ? "odd" : "even", $status->[0], $status_descr{$status->[0]}, $status->[1]; $row++;
} -print "</table></div>\n"; -print end_html; +print INDEX "</table></div>\n"; +print INDEX end_html; +close INDEX; + +!system "rsync", "-q", "-r", "--chmod=+r", "--exclude=OLD/", "$dir/", "$dest/data" or die "rsync failed: $?"; +rename "$dest/index.html.new", "$dest/index.html" or die "failed to update index.html";