2 ob_start("ob_gzhandler", 1);
3 $buildlogs_server = "buildlogs.pld-linux.org";
5 $fail_or_ok = array( "FAIL", "OK" );
7 $database = 'sqlite:/home/services/ftp/buildlogs2.db';
8 $root_directory = "/home/services/ftp/pub/pld-buildlogs";
11 // $database, $root_directory and others are taken from buildlogs.inc
12 include('buildlogs.inc');
14 /* It should be set */
16 $langs["en_US"]["charset"]="ISO-8859-1";
17 $langs["pl_PL"]["charset"]="ISO-8859-2";
20 if (isset($_SERVER["HTTP_ACCEPT_LANGUAGE"]))
22 $rows=explode(";",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
23 $rows=explode(",",$rows[0]);
24 $lang_detected=rtrim($rows[0]);
25 } else if (preg_match("/opera/i",$_SERVER["HTTP_USER_AGENT"]))
27 $lang_detected=preg_replace("/.*\[(.*)\].*/i","\\1",$_SERVER["HTTP_USER_AGENT"]);
31 $lang_detected=preg_replace("/^pl$/i","pl_PL",$lang_detected);
33 if (isset($lang_detected) && isset($langs[$lang_detected]))
38 if (isset($_GET["lang"]))$_SESSION["lang"]=$_GET["lang"];
39 if (isset($_SESSION["lang"]))$lang=$_SESSION["lang"];
42 setlocale(LC_ALL,$lang);
43 bindtextdomain("messages","locale");
44 textdomain("messages");
46 if (isset($_GET["dist"]) && isset($_GET["arch"]))
48 $dist = basename($_GET["dist"]);
49 $arch = basename($_GET["arch"]);
52 if (isset($_POST["dist"])) $dist = basename($_POST["dist"]);
53 if (isset($_POST["arch"])) $arch = basename($_POST["arch"]);
55 if (isset($_GET["name"])) {
56 $name_url = urlencode($_GET["name"]);
57 $name = basename($_GET["name"]);
59 if (isset($_GET["ok"]))$ok=(int)$_GET["ok"];
61 if (isset($_GET["ns"]))$ns=(int)$_GET["ns"];
63 if (isset($_GET["cnt"]))$cnt=(int)$_GET["cnt"];
65 if (isset($_GET["action"]))$action=$_GET["action"];
67 if (isset($_GET["off"]))$off=(int)$_GET["off"];
69 if (isset($_GET["id"]))$id=$_GET["id"];
71 if (isset($_POST["str"]))$str=$_POST["str"];
72 if (isset($_POST["action"]))$action=$_POST["action"];
79 echo '<' . '?xml version="1.0" encoding="' . _("ISO-8859-1") .'"?' . ">\n";
80 echo '<' . '?xml-stylesheet href="#internalStyle" type="text/css"?' . ">\n";
82 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
83 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
84 <html xmlns="http://www.w3.org/1999/xhtml">
86 <title>PLD Build Logs</title>
87 <?php echo '<meta http-equiv="Content-type" content="text/html; charset=' . _("ISO-8859-1") .'"/>' ."\n";?>
88 <style type="text/css"><!--
89 A { text-decoration: none; }
90 A:hover { text-decoration: underline; }
91 H1 { font-family: arial,helvetica,sans-serif;
94 H2 { font-family: arial,helvetica,sans-serif;
97 BODY,TD { font-family: arial,helvetica,sans-serif;
99 TH { font-family: arial,helvetica,sans-serif;
102 /* error lines from build logs */
104 background-color: #b00;
111 background-color: #161;
116 <!-- Diffrent color for visited link doesn't make much sense here...
117 this page is autogenerated and it might be misleading after some
118 build log changes. -->
119 <body bgcolor="#ffffff" text="#000000" link="#5f26cd" vlink="#5f26cd">
125 echo "<table cellpadding=\"10\"><tr><td bgcolor=\"#000000\">".
126 "<font color=\"#cccccc\"><pre style=\"width: 2048px;overflow: scroll\">";
131 echo "</pre></font></td></tr></table>\n";
136 echo "</body></html>";
142 echo "Fatal error: $msg";
150 global $arch, $dist, $ok;
151 global $big_url, $ns;
152 global $off, $cnt, $root_directory, $url;
154 $big_url = "$url?dist=$dist&arch=$arch&ok=$ok&ns=$ns&cnt=$cnt";
157 echo "<h1>"._("Listing of")." $dist/$arch/OK "
158 ."(<a href=\"$big_url&ok=0\">"._("fail")."</a>)</h1>\n";
160 echo "<h1>"._("Listing of")." $dist/$arch/FAIL "
161 ."(<a href=\"$big_url&ok=1\">"._("ok")."</a>)</h1>\n";
164 echo "<div align=\"center\"><table cols=\"4\" border=\"0\" cellspacing=\"1\" ".
165 "cellpadding=\"3\" bgcolor=\"#000000\" width=\"90%\">\n";
166 echo "<tr><th bgcolor=\"#CCCCFF\" align=\"right\" width=\"1%\">"._("No.")."</th>".
167 "<th bgcolor=\"#CCCCFF\" align=\"left\" width=\"80%\">"._("Log File").
168 "[<a href=\"$big_url&ns=1\">"._("sort")."</a>]</th>".
169 "<th bgcolor=\"#CCCCFF\" align=\"right\" width=\"15%\">"._("Size")."</th> ".
170 "<th bgcolor=\"#CCCCFF\" align=\"left\">"._("Age").
171 "[<a href=\"$big_url&ns=0\">"._("sort")."</a>]</th>".
174 if ($ns != 1) $ns = 0;
175 if (!isset($ok)) $ok = 0;
176 // if (!isset($off)) $off = 0;
177 // if (!isset($cnt)) $cnt = 50;
178 if ($ns == 0) $order = "mtime DESC";
179 else $order = "name";
181 $query = "SELECT log_id, dist, arch, ok, name, mtime, size, id FROM logs WHERE "
182 . "dist = '$dist' AND arch = '$arch' AND ok = $ok ORDER BY $order LIMIT $cnt OFFSET $off";
185 $dbh = new PDO("$database");
186 } catch (PDOException $e) {
187 mydie("new PDO: " . $e->getMessage());
191 foreach ($dbh->query("$query") as $row) {
192 $name = $row["name"];
194 $dist = $row["dist"];
195 $arch = $row["arch"];
197 $name_url = urlencode($name);
198 $t = $now - $row["mtime"];
208 $t = $t . " " . ngettext("day","days",$t);
211 $t = $t . " " . ngettext("hour","hours",$t);
215 $t = $t . " " . ngettext("minute","minutes",$t);
217 $u = "$url?dist=$dist&arch=$arch&ok=$ok&name=$name_url&id=$id";
218 echo "<tr><td bgcolor=\"#CCCCCC\" align=\"right\">".($i+1).".</td>".
219 "<td bgcolor=\"#CCCCCC\"><a href=\"$u\">$f</a> ".
220 "[<a href=\"$u&action=text\">"._("text")."</a> | ".
221 "<a href=\"$u&action=tail\">"._("tail")."</a>]".
222 "</td><td bgcolor=\"#CCCCCC\" align=\"right\">".
223 "$s</td><td bgcolor=\"#CCCCCC\">$t</td></tr>\n";
227 echo "</table></div>\n";
229 $backarr = "<<< ";
230 $back = _("Page back");
231 $forward = _("Page forward");
232 $forwardarr = " >>>";
234 echo "<p><table width=\"90%\" align=\"center\"><tr><td align=\"left\" width=\"1%\">";
237 $noff = $off - $count;
240 $hrefurl = "<a href=\"$big_url&off=$noff\">";
241 echo "$hrefurl$backarr</a></td><td align=\"left\">$hrefurl$back</a>";
243 echo "$backarr</td><td align=\"left\">$back";
246 echo "</td>\n<td align=\"center\">";
248 if (isset($dist) && isset($arch)) {
249 echo "[<a href=\"$big_url&action=qa\">"._("View <quot>rpm -qa</quot> of builder")."</a>]";
254 echo "</td>\n<td align=right>";
255 if ($cnt == $count) {
259 $hrefurl = "<a href=\"$big_url&off=$noff\">";
260 echo "$hrefurl$forward</a></td><td align=right width=1%>$hrefurl$forwardarr</a>";
262 echo "$forward</td><td align=right width=1%>$forwardarr";
264 echo "</td>\n</tr></table></p>";
269 global $ok, $dist, $arch, $name, $name_url, $id;
271 if (isset($name) && isset($ok) && isset($arch) && isset($dist)) {
272 if (isset($id) && $id != '') {
273 $name = $name . ",$id";
275 $w = $ok ? "OK" : "FAIL";
276 return "$dist/$arch/$w/$name.bz2";
280 function dump_log($tail)
282 global $ok, $url, $dist, $arch, $name, $name_url;
283 global $root_directory, $big_url, $ns, $id, $cnt, $off;
284 global $buildlogs_server;
291 $df = preg_replace("/.*\/([^\/]*)$/", "\\1", $f);
292 $df = preg_replace("/\.(bz2|gz)$/", "", $df);
296 echo "<table border=\"0\" cellpadding=\"3\" cellspacing=\"1\" bgcolor=\"#000000\">";
298 function one_item($h, $t) {
299 echo "<tr><td bgcolor=\"#ccccff\">$h:</td>".
300 "<td bgcolor=\"#cccccc\">$t</td></tr>";
303 function href($h, $c) {
304 return "<a href=\"$h\">$c</a>";
307 one_item(_("Status"), ($ok == 1 ?
308 "<font color=\"green\"><b>"._("OK")."</b></font>" :
309 "<font color=\"red\"><b>"._("Failed")."</b></a>"));
310 one_item(_("Source URL"),
311 href("ftp://$buildlogs_server/$f",
312 "ftp://$buildlogs_server/$f"));
314 $big_url = "$url?dist=$dist&arch=$arch&ok=$ok&ns=$ns&cnt=$cnt";
315 $bu = "$big_url&off=$off";
317 one_item(_("text/plain URL"),
318 href("$bu&name=$name_url&id=$id&action=text",
321 one_item(_("full text"),
322 href("$bu&name=$name_url&id=$id",
326 if (isset($dist) && isset($arch)) {
327 one_item(_("rpm -qa of builder"), href("$bu&action=qa", _("View!")));
329 one_item(_("rpm -qa of builder"), _("Not available"));
331 one_item("Date", date("Y/m/d H:i:s", filemtime("$root_directory/$f")));
333 echo "<tr><td>Here:</td><td>" .
334 "<a href=\"$url?idx=$idx&ok=$ok&id=$id\">".
335 "http://" . getenv("SERVER_NAME") .
336 getenv("SCRIPT_NAME") . "?idx=$idx&ok=$ok&id=$id</a>" .
342 # what can I say beside PHP suxx? how the fuck should I create
343 # bidirectional pipe? gotta use wget
345 if (preg_match("/\.bz2$/", $f)) {
347 } elseif (preg_match("/\.gz$/", $f)) {
353 $cmd = "$filter '$root_directory/$f'";
355 $cmd = "$cmd | tail -n 100";
356 $fd = popen($cmd, "r");
360 while (($s = fgets($fd, 102400)) != false) {
361 if (strlen($s) > 800) {
362 $s = chunk_split($s, 800, "\n ");
365 $s = htmlspecialchars($s);
367 if (preg_match("/errors?:/i", $s)) {
369 $s = "<span class=error id=error-$err_count>$s</span>";
370 $toc[] = "error $err_count";
371 } elseif (substr($s, 0, 2) == "+ ") {
373 $s = "<span class=verbose>$s</span>";
374 } elseif (preg_match("/^Executing\(%(?P<section>\w+)\)/", $s, $m)) {
376 $s = "<span class=section id={$m['section']}>$s</span>";
377 $toc[] = $m['section'];
378 } elseif (preg_match("/^Processing files: (?P<pkg>(?P<name>.+)-[^-]+-[^-]+)/", $s, $m)) {
380 $s = "<span class=section id=files-{$m['name']}>$s</span>";
381 $toc[] = "files ".$m['name'];
386 $code = ob_get_contents();
390 echo "<h2>"._("Toc:")."</h2>";
391 echo "<ul class=toc>";
392 foreach ($toc as $section) {
393 $id = str_replace(" ", "-", $section);
394 echo "<li><a href=#{$id}>{$section}</a></li>";
399 echo "<h2>"._("Content:")."</h2>";
409 [<a href="<?php echo $bu; ?>"><?=_("Back to list of logs")?></a>]
412 [<a href="<?php echo "$bu&action=qa"
413 ?>"><?=_("View rpm -qa of builder")?></a>]
423 global $root_directory;
424 global $buildlogs_server;
426 header("Content-type: text/plain");
432 echo "# src : ftp://$buildlogs_server/$f\n";
434 date("Y/m/d H:i:s", filemtime("$root_directory/$f")) . "\n";
436 if (preg_match("/\.bz2$/", $f)) {
438 } elseif (preg_match("/\.gz$/", $f)) {
444 $cmd = "$filter '$root_directory/$f'";
445 $fd = popen($cmd, "r");
446 while (($s = fgets($fd, 1000)) != false) {
452 function list_archs()
454 global $addr, $url, $cnt,$ok,$ns;
459 $big_url = "$url?ok=$ok&ns=$ns&cnt=$cnt";
461 echo "<table width=\"100%\" border=\"0\">\n";
462 echo "<tr><td bgcolor=\"#cccccc\" nowrap=\"nowrap\">"._("Failed")."</td><td bgcolor=\"#cccccc\">"._("Ok")."</td></tr>\n";
463 foreach ($addr as $dist => $ddist) {
464 foreach ($ddist as $arch) {
465 echo "<tr><td nowrap=\"nowrap\">".
466 "<a href=\"$url?dist=$dist&arch=$arch&ok=0&cnt=$cnt\">
467 $dist/$arch</a></td><td nowrap=\"nowrap\">".
468 "[<a href=\"$url?dist=$dist&arch=$arch&ok=1&cnt=$cnt\">OK</a>]</td>".
469 #"<td>[<a href=\"$url?idx=$i&action=qa\">qa</a>]</td>".
473 echo "</table><hr />\n";
475 echo "<div align=\"center\">";
476 echo "<a href=\"$big_url&action=adv_search\">"._("Advanced Search")."</a><br />\n";
478 echo "<a href=\"$url\">main()</a><hr />\n";
479 echo "<a href=\"http://www.pld-linux.org/\"><img src=\"powpld.png\" ".
480 "alt=\""._("Powered by PLD Linux")."\" border=\"0\" /></a><br />\n" .
482 "<a href=\"mailto:feedback@pld-linux.org\">PLD Team</a><br />\n".
487 echo "<div align=\"center\"><small>";
488 $pow = array("vim", "php", "brain", "power", "electricity",
489 "coffee", "ufo", "penguin", "GNOME", "ELF", "DWARF",
490 "voodoo magic", "Linux", "x-files", "X", "foobar",
491 "/dev/null", "/dev/zero", "/dev/drzewo",
492 "Leppe'", "matrix", "Neo", "PDP-11",
493 "Ken", "GNU antilope", "PDP-7", "ITS", "Multics",
494 "foobarbaz", "ed", "Joe", "Unix conspiracy",
495 "overclock", "The Right Thing",
496 "The Bad Thing", "Star Treck", "NSA", "NASA",
497 "achelon", "VAX", "Real Programmer",
498 "Real Operating System", "Real Computer",
499 "computron", "bogon", "quantum bogodynamics",
500 "BOFH", "/dev/ill", "nasi tu byli",
501 "Paranoid Android", "Lunatic Corp", "Parallel thinking",
502 "sfistak", "Linus", "The Golden Path", "Dark Side of the Force",
503 "Przewodniczacego Lepper-a", "KDE", "Microsoft Windows 2003", "sqlite3",
504 "synergy", "six Cray XMT Supercomputers"
505 # feel free to add sth if you change this file ;)
507 echo _("Powered by")." ";
509 for ($i = 0; $i < $max; $i++) {
510 $x = rand(0, count($pow) - 1);
511 if ($pow[$x] == "") $i--;
512 else echo $pow[$x] . ($i == $max - 1 ? "." : ", ");
515 echo "</small></div>";
517 echo "<div align=\"center\"><small>";
518 echo "Your IP: " . $_SERVER['REMOTE_ADDR'];
519 echo "</small></div>";
521 if (isset($dist) && isset($arch)) {
522 echo "<form action=\"index.php\" method=\"post\">";
523 echo "<input type=\"hidden\" name=\"dist\" value=\"$dist\" />";
524 echo "<input type=\"hidden\" name=\"arch\" value=\"$arch\" />";
525 echo "<input type=\"hidden\" name=\"action\" value=\"sqa\" />";
526 echo "<input type=\"text\" size=\"14\" name=\"str\" /><br />";
527 echo "<input type=\"submit\" name=\"submit\" value=\""._("Search rpmqa!")."\" />";
536 if (!isset($dist) || !isset($arch))
538 $addr = "http://ftp1.pld-linux.org/dists/$dist/.stat/builder/$dist/rpmqa-$arch.txt";
539 return fopen("$addr", "r");
544 global $url, $str, $dist, $arch;
547 echo "<h1>"._("Search results for")." '$str' "._("in")." $dist/$arch</h1>";
552 echo _("Sorry, cannot open.");
554 while (($s = fgets($f, 1000)) != false) {
555 if (stristr($s, $str))
563 function dump_qa($plain)
565 global $url, $dist, $arch;
570 header("Content-type: text/plain");
571 echo _("# rpm -qa of")." $dist/$arch\n";
573 echo "<h1>"._("rpm -qa of")." $a</h1>";
574 echo "<a href=\"$url?dist=$dist&arch=$arch&action=qatxt\">"._("text/plain version")."</a>";
579 echo _("Sorry, cannot open.");
581 while (($s = fgets($f, 1000)) != false) {
591 function adv_search()
593 global $database, $addr, $fail_or_ok, $url, $_POST, $off, $cnt, $root_directory, $ok, $ns;
595 $big_url = "$url?ok=$ok&ns=$ns&cnt=$cnt";
597 echo "<script><!--\n".
598 "function checkboxToggle() {\n".
599 "for (var i=0;i<document.forms[0].elements.length;i++) {\n".
600 "var e = document.forms[0].elements[i];\n".
601 "if ((e.name != 'all') && (e.type=='checkbox'))\n".
602 "e.checked = document.forms[0].all.checked;\n".
603 "}\n }\n -->\n </script>\n";
605 /* Shut up warnings */
606 if (!isset($_POST["n2"])) $_POST["n2"] = "";
607 if (!isset($_POST["age1"])) $_POST["age1"] = "";
608 if (!isset($_POST["age2"])) $_POST["age2"] = "";
609 if (!isset($_POST["size1"])) $_POST["size1"] = "";
610 if (!isset($_POST["size2"])) $_POST["size2"] = "";
612 echo "<form action=\"index.php?action=adv_search\" method=\"post\">";
614 echo "<div align=\"center\">";
615 echo "<table border=\"0\">\n";
617 echo "<td>"._("Package name")."</td>\n";
618 echo "<td><input type=\"text\" size=\"20\" name=\"n2\" value=\"". $_POST["name"] ."\"/></td>\n";
622 echo "<td>"._("Days")."</td>\n";
623 echo "<td>"._("From").": <input type=\"text\" size=\"20\" name=\"age1\" value=\"". $_POST["age1"] ."\" /></td>\n";
624 echo "<td>"._("To").": <input type=\"text\" size=\"20\" name=\"age2\" value=\"". $_POST["age2"] ."\" /></td>\n";
628 echo "<td>"._("Size")."</td>\n";
629 echo "<td>"._("From").": <input type=\"text\" size=\"20\" name=\"size1\" value=\"". $_POST["size1"] ."\" /></td>\n";
630 echo "<td>"._("To").": <input type=\"text\" size=\"20\" name=\"size2\" value=\"". $_POST["size2"] ."\" /></td>\n";
634 echo "<td>"._("Search logs:")."</td>\n";
638 echo "<td>"._("Failed")."</td>\n";
639 echo "<td>"._("OK")."</td>\n";
643 foreach ($addr as $dist => $ddist) {
644 foreach ($ddist as $arch) {
647 if (!isset($_POST["$name"])) {
650 $check=" checked='checked'";
652 echo "<td><input name=\"$name\" id=\"$name\" type=\"checkbox\"$check /><label for=\"$name\">". "$dist/$arch" ."</label></td>\n";
654 if (!isset($_POST["$n2"])) {
657 $check=" checked='checked'";
659 echo "<td><input name=\"$name\" id=\"$name\" type=\"checkbox\"$check /><label for=\"$name\">". "$dist/$arch" ."</label></td>\n";
666 echo "<td><label><input name=\"all\" type=\"checkbox\" checked=\"on\" onClick=\"checkboxToggle()\">"._("Toggle checkboxes")."</label> <input type=\"submit\" name=\"submit\" value=\""._("Search!")."\" /></td>";
671 // if (isset($_POST["name"]) || isset($_POST["age1"]) || isset($_POST["age2"]) ||
672 // isset($_POST["size1"]) || isset($_POST["size2"])
673 if (($_POST["n2"]!="") || ($_POST["age1"]!="") || ($_POST["age2"]!="") ||
674 ($_POST["size1"]!="") || ($_POST["size2"]!=""))
676 $query = "SELECT log_id, dist, arch, ok, name, size, mtime, id FROM logs WHERE 1 ";
677 if ($_POST["n2"] != "") {
678 $n = addslashes($_POST["n2"]);
679 $query .= "AND name LIKE '$n%' ";
683 if ($_POST["age1"] != "") {
684 $age = $now - (int)$_POST["age1"] * 24 * 3600;
685 $query .= "AND mtime > $age ";
688 if ($_POST["age2"] != "") {
689 $age = $now - (int)$_POST["age2"] * 24 * 3600;
690 $query .= "AND mtime < $age ";
693 if ($_POST["size1"] != "") {
694 $size = (int)$_POST["size1"];
695 $query .= "AND size > $size ";
698 if ($_POST["size2"] != "") {
699 $size = (int)$_POST["size2"];
700 $query .= "AND size < $size ";
705 foreach ($addr as $dist => $ddist) {
706 foreach ($ddist as $arch) {
707 for ($j = 0; $j < 2; $j++) {
708 if (isset($_POST["as" . $j . "_" .$i])) {
709 $query .= "$or (dist = '$dist' AND arch = '$arch' AND ok = $j)";
716 if ($or == " OR ") $query .= ")";
717 // if (!isset($cnt)) $cnt = 50;
718 // if (!isset($off)) $off = 0;
719 if (!isset($ns)) $ns = 0;
722 $query .= " ORDER BY mtime DESC";
725 $query .= " ORDER BY name";
728 $query .= " ORDER BY dist, arch, name";
731 $query .= " LIMIT $cnt OFFSET $off ";
734 $dbh = new PDO("$database");
735 } catch (PDOException $e) {
736 mydie("new PDO: " . $e->getMessage());
738 $result = $dbh->query("$query")->fetchAll();
740 if ($result == FALSE) {
741 echo _("Nothing found");
743 echo "<table border=\"0\" cellspacing=\"1\" ".
744 "cellpadding=3 bgcolor=\"#000000\" width=\"90%\">\n";
745 echo "<tr><th bgcolor=\"#CCCCFF\" align=\"left\" width=\"10%\">"._("Builder").
746 "[<a href=\"$big_url&ns=2\">"._("sort")."</a>]</th>";
747 echo "<th bgcolor=\"#CCCCFF\" align=\"left\" width=\"60%\">"._("Log File").
748 "[<a href=\"$big_url&ns=1\">"._("sort")."</a>]</th>".
749 "<th bgcolor=\"#CCCCFF\" align=\"right\" width=\"15%\">"._("Size")."</th> ".
750 "<th bgcolor=\"#CCCCFF\" align=\"left\">"._("Age").
751 "[<a href=\"$big_url&ns=0\">"._("sort")."</a>]</th>".
754 // for ($i = $off; $i < $off + $count; $i++) {
755 foreach ($result as $row) {
756 $dist = $row["dist"];
757 $arch = $row["arch"];
758 $name = $row["name"];
759 $name_url = urlencode($name);
762 $t = $now - $row["mtime"];
770 $t = $t . " " . ngettext("day","days",$t);
773 $t = $t . " " . ngettext("hour","hours",$t);
777 $t = $t . " " . ngettext("minute","minutes",$t);
780 // $big_url = "$url?idx=$i&ok=$j&ns=$ns&cnt=$cnt";
782 $u = "$url?dist=$dist&arch=$arch&name=$name_url&ok=$ok&id=$id";
783 $b = "$url?dist=$dist&arch=$arch&ok=$ok&ns=$ns&off=$off&cnt=$cnt";
785 $builder = "$dist/$arch/". $fail_or_ok[$ok];
787 echo "<td bgcolor=\"#CCCCCC\"><a href=\"$b\">$builder</a></td>";
788 echo "<td bgcolor=\"#CCCCCC\"><a href=\"$u\">$f</a> ".
789 "[<a href=\"$u&action=text\">"._("text")."</a> | ".
790 "<a href=\"$u&action=tail\">"._("tail")."</a>]".
791 "</td><td bgcolor=\"#CCCCCC\" align=\"right\">".
792 "$s</td><td bgcolor=\"#CCCCCC\">$t</td></tr>\n";
795 echo "</table></div>\n";
797 $backarr = "<<< ";
798 $back = _("Page back");
799 $forward = _("Page forward");
800 $forwardarr = " >>>";
805 echo "<p><table width=\"90%\" align=\"center\"><tr><td align=left width=1%>";
811 $hrefurl = "<a href=\"$big_url&off=$noff\">";
812 echo "$hrefurl$backarr</a></td><td align=left>$hrefurl$back</a>";
814 echo "$backarr</td><td align=left>$back";
817 echo "</td>\n<td align=\"center\">";
818 echo "</td>\n<td align=\"right\">";
820 if ($off + $cnt < count($list))
825 $hrefurl = "<a href=\"$big_url&off=$noff\">";
826 echo "$hrefurl$forward</a></td><td align=\"right\" width=\"1%\">$hrefurl$forwardarr</a>";
830 echo "$forward</td><td align=\"right\" width=\"1%\">$forwardarr";
833 echo "</td>\n</tr></table></p>";
837 echo _("Enter something!");
839 echo "</div></form>\n";
845 <table border="0" width="100%"><tr><td width="20%"> </td><td>
846 <h1><?=_("Welcome!")?></h1>
847 <p><?=_("Welcome to PLD Build Logs WWW interface.")?></p><p>
848 <?=_("Feel free to email bug reports, complaints and feature requests ")?>
849 <!-- ech... niech strace... -->
850 <a href="mailto:feedback@pld-linux.org"><?=_("to us")?></a>. <?=_("Positive opinions are also")?>
851 <a href="mailto:feedback@pld-linux.org"><?=_("welcome")?></a> ;)</p>
852 <p>Version: $Id: index.php,v 1.19 2012/03/21 11:45:04 glen Exp $</p>
853 </td><td width="20%"> </td></tr>
858 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
859 header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
860 header("Cache-Control: no-cache, must-revalidate");
861 header("Pragma: no-cache");
864 if ($action == "text") {
866 } else if ($action == "adv_search") {
870 } else if ($action == "qatxt") {
874 echo "<table cellpadding=\"10\" width=\"100%\"><tr><td valign=\"top\" width=\"10%\">";
876 echo "</td><td valign=\"top\">";
880 else if ($action == "sqa")
882 else if (isset($id) || isset($name))
883 dump_log($action == "tail");
884 else if (isset($dist))
888 echo "</td></tr></table>";