--- /dev/null
+[%
+ flag_imgs = {
+ perl = '/img/camel.png',
+ python = '/img/python.png',
+ debug = '/img/bug.png',
+ pam => '/img/pam.png',
+ cassert => '/img/cassert.png',
+ openssl => '/img/ssl_icon.gif',
+ nls => '/img/translateicon.gif',
+ krb5 => '/img/krb.gif',
+ tcl => '/img/tcl.png',
+ vpath => '/img/vpath.png',
+ xml => '/img/xml.png',
+ 'thread-safety' => '/img/threads.gif',
+ 'integer-datetimes' = '/img/days.png',
+ git => '/img/git.png',
+ }
+-%]
+[%- BLOCK img ; IF flag == 'depend' or flag == 'gnu-ld' ; ; ELSIF flag_imgs.$flag %]<img src="[% flag_imgs.$flag %]" title="[% flag %]" alt="[% flag %]" height="16" width="16" class="inline" align="bottom" /> [% ELSE %][%#
+ flag ; ' '
+%][% END ; END -%]
+[%- BLOCK sysnotes ; IF row.sys_notes %]<img src="/img/notes.png" height="16" width="16" title="[% row.sys_notes_ts.replace(' .*','') | html %]: [% row.sys_notes | html %]" />
+[%- ELSE %] [% END ; END -%]
+[%- BLOCK cl %] class="[% SWITCH bgfor.replace('-.*','') -%]
+ [%- CASE 'OK' %]pass[% CASE 'ContribCheck' %]warn[% CASE [ 'Check' 'InstallCheck' ] %]warnx[% CASE %]fail[% END %]"
+[%- END -%]
+[% WRAPPER 'page.tt'
+ title = 'PostgreSQL BuildFarm Status'
+ bodyclass = 'none'
+ pagebutton = 'status'
+%]
+ <h1>PostgreSQL BuildFarm Status</h1>
+ <p>
+ Shown here is the latest status of each farm member
+ for each branch it has reported on in the last 30 days.
+ </p>
+ <p>
+ Use the farm member link for history of that member
+ on the relevant branch.
+ </p>
+<table><tr><th class="head" rowspan="2">Legend</th>
+[% FOREACH flagset IN flag_imgs %]
+<td><img src="[% flagset.value %]" title="[% flagset.key %]" alt="[% flagset.key %]" height="16" width="16" class="inline" align="center"/> = [% flagset.key %]</td>
+[% IF loop.count == 7 %]</tr><tr>[% END %]
+[% END %]
+</tr></table>
+<br />
+ <table cellspacing="0">
+[% brch = "" %]
+[% FOREACH row IN statrows %]
+[% IF row.branch != brch ; brch = row.branch %]
+<tr><th class="head" colspan="5">Branch: [% brch %]</th></tr>
+<tr><th colspan="2">Alias</th><th>System</th><th>Status</th><th>Flags</th></tr>
+[% END %]
+<tr [% PROCESS cl bgfor=row.stage %]>
+ <td><a
+ href="show_history.pl?nm=[% row.sysname %]&br=[% row.branch %]"
+ title="History"
+ >[% row.sysname %]</a></td>
+ <td>[% PROCESS sysnotes %]</td>
+ <td><span class="opsys">[% row.operating_system %]
+ [% row.os_version %]</span> <span class="compiler">
+ [%- row.compiler %]
+ [% row.compiler_version %]</span> <span class="arch">
+ [%- row.architecture %]</span></td>
+ <td class="status">
+ [%- row.when_ago | replace('\s',' ') %] ago
+ [% row.stage -%]
+ <a href="show_log.pl?nm=
+ [%- row.sysname %]&dt=
+ [%- row.snapshot | uri %]">
+ [%- IF row.stage != 'OK' %]Details[% ELSE %]Config[% END -%]</a></td>
+
+ <td class="flags">[% FOREACH flag IN row.build_flags.split().sort() ; PROCESS img ; END %]</td>
+</tr>
+[% END %]
+ </table>
+[% END %]