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=\"white-space: pre-line; word-break: break-all;\">";
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\" width="\100%\">";
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>" .
341 # what can I say beside PHP suxx? how the fuck should I create
342 # bidirectional pipe? gotta use wget
344 if (preg_match("/\.bz2$/", $f)) {
346 } elseif (preg_match("/\.gz$/", $f)) {
352 $cmd = "$filter '$root_directory/$f'";
353 $fd = popen($cmd, "r");
357 $first_cut_done = false;
361 while (($s = fgets($fd, 102400)) != false) {
363 if (strlen($s) > 800) {
364 $s = chunk_split($s, 800, "\n ");
371 $s = htmlspecialchars($s);
373 if (preg_match("/(?:fail|error(s|\sCS\d+)?):/i", $s)) {
376 $toc_elem = "error $err_count";
378 $s = "<span class=error id=error-$err_count>$s</span>";
379 } elseif (preg_match("/(?:undefined reference to)/i", $s)) {
382 $toc_elem = "error $err_count";
384 $s = "<span class=error id=error-$err_count>$s</span>";
385 } elseif (preg_match("#^\+ /usr/bin/make\b.*\b(?P<target>check)\b#", $s, $m)) {
387 $toc_elem = "make {$m['target']}";
389 $s = "<span class=line id=make-{$m['target']}>$s</span>";
390 } elseif (substr($s, 0, 2) == "+ ") {
392 $s = "<span class=verbose>$s</span>";
393 } elseif (preg_match("/^Executing\(%(?P<section>\w+)\)/", $s, $m)) {
395 $toc_elem = $m['section'];
397 $s = "<span class=section id={$m['section']}>$s</span>";
398 } elseif (preg_match("/^Processing files: (?P<pkg>(?P<name>.+)-[^-]+-[^-]+)/", $s, $m)) {
401 $toc_elem = "files ".$m['name'];
403 $s = "<span class=section id=files-{$m['name']}>$s</span>";
404 } elseif (preg_match("/^ended at: (?P<date>.+), done in (?P<time>[\d:.]+)/", $s, $m)) {
411 // if error/processing found truncate early but keep last 100 lines before error
412 if ($tail && $first_cut && !$first_cut_done && $out_buf_size > 100) {
413 array_splice($out_buf, 0, $out_buf_size - 100);
415 $first_cut_done = true;
418 // if (not in tail mode) or (in tail mode but we have an error)
419 if (!$tail || $first_cut) {
428 // no errors found, no processing found but we are in tail mode
429 if ($tail && !$first_cut_done && $out_buf_size > 100) {
430 array_splice($out_buf, 0, $out_buf_size - 100);
434 $code = join('', $out_buf);
437 one_item(_("Runtime"), $time);
443 echo "<h2>"._("Toc:")."</h2>";
444 echo "<ul class=toc>";
445 foreach ($toc as $i => $section) {
446 $id = str_replace(" ", "-", $section);
447 echo "<li><a href=#{$id}>{$section}</a></li>";
448 echo "<code>{$err[$i]}</code>";
453 echo "<h2>"._("Content:")."</h2>";
463 [<a href="<?php echo $bu; ?>"><?=_("Back to list of logs")?></a>]
466 [<a href="<?php echo "$bu&action=qa"
467 ?>"><?=_("View rpm -qa of builder")?></a>]
477 global $root_directory;
478 global $buildlogs_server;
480 header("Content-type: text/plain");
486 echo "# src : ftp://$buildlogs_server/$f\n";
488 date("Y/m/d H:i:s", filemtime("$root_directory/$f")) . "\n";
490 if (preg_match("/\.bz2$/", $f)) {
492 } elseif (preg_match("/\.gz$/", $f)) {
498 $cmd = "$filter '$root_directory/$f'";
499 $fd = popen($cmd, "r");
500 while (($s = fgets($fd, 1000)) != false) {
506 function list_archs()
508 global $addr, $url, $cnt,$ok,$ns;
513 $big_url = "$url?ok=$ok&ns=$ns&cnt=$cnt";
515 echo "<table width=\"100%\" border=\"0\">\n";
516 echo "<tr><td bgcolor=\"#cccccc\" nowrap=\"nowrap\">"._("Failed")."</td><td bgcolor=\"#cccccc\">"._("Ok")."</td></tr>\n";
517 foreach ($addr as $dist => $ddist) {
518 echo "<tr><td colspan=2 nowrap=\"nowrap\"><hr/></td></tr>\n";
519 foreach ($ddist as $arch) {
520 echo "<tr><td nowrap=\"nowrap\">".
521 "<a href=\"$url?dist=$dist&arch=$arch&ok=0&cnt=$cnt\">
522 $dist/$arch</a></td><td nowrap=\"nowrap\">".
523 "[<a href=\"$url?dist=$dist&arch=$arch&ok=1&cnt=$cnt\">OK</a>]</td>".
524 #"<td>[<a href=\"$url?idx=$i&action=qa\">qa</a>]</td>".
528 echo "</table><hr />\n";
530 echo "<div align=\"center\">";
531 echo "<a href=\"$big_url&action=adv_search\">"._("Advanced Search")."</a><br />\n";
533 echo "<a href=\"$url\">main()</a><hr />\n";
534 echo "<a href=\"http://www.pld-linux.org/\"><img src=\"powpld.png\" ".
535 "alt=\""._("Powered by PLD Linux")."\" border=\"0\" /></a><br />\n" .
536 "<small>(c) 2002-". date("Y") . " ".
537 "<a href=\"mailto:feedback@pld-linux.org\">PLD Team</a><br />\n".
542 echo "<div align=\"center\"><small>";
543 $pow = array("vim", "php", "brain", "power", "electricity",
544 "coffee", "ufo", "penguin", "GNOME", "ELF", "DWARF",
545 "voodoo magic", "Linux", "x-files", "X", "foobar",
546 "/dev/null", "/dev/zero", "/dev/drzewo",
547 "Leppe'", "matrix", "Neo", "PDP-11",
548 "Ken", "GNU antilope", "PDP-7", "ITS", "Multics",
549 "foobarbaz", "ed", "Joe", "Unix conspiracy",
550 "overclock", "The Right Thing",
551 "The Bad Thing", "Star Treck", "NSA", "NASA",
552 "achelon", "VAX", "Real Programmer",
553 "Real Operating System", "Real Computer",
554 "computron", "bogon", "quantum bogodynamics",
555 "BOFH", "/dev/ill", "nasi tu byli",
556 "Paranoid Android", "Lunatic Corp", "Parallel thinking",
557 "sfistak", "Linus", "The Golden Path", "Dark Side of the Force",
558 "Przewodniczacego Lepper-a", "KDE", "Microsoft Windows 2003", "sqlite3",
559 "synergy", "six Cray XMT Supercomputers"
560 # feel free to add sth if you change this file ;)
562 echo _("Powered by")." ";
564 for ($i = 0; $i < $max; $i++) {
565 $x = rand(0, count($pow) - 1);
566 if ($pow[$x] == "") $i--;
567 else echo $pow[$x] . ($i == $max - 1 ? "." : ", ");
570 echo "</small></div>";
572 echo "<div align=\"center\"><small>";
573 echo "Your IP: " . $_SERVER['REMOTE_ADDR'];
574 echo "</small></div>";
576 if (isset($dist) && isset($arch)) {
577 echo "<form action=\"index.php\" method=\"post\">";
578 echo "<input type=\"hidden\" name=\"dist\" value=\"$dist\" />";
579 echo "<input type=\"hidden\" name=\"arch\" value=\"$arch\" />";
580 echo "<input type=\"hidden\" name=\"action\" value=\"sqa\" />";
581 echo "<input type=\"text\" size=\"14\" name=\"str\" /><br />";
582 echo "<input type=\"submit\" name=\"submit\" value=\""._("Search rpmqa!")."\" />";
591 if (!isset($dist) || !isset($arch))
593 $addr = "http://ftp1.pld-linux.org/dists/$dist/.stat/builder/$dist/rpmqa-$arch.txt";
594 return fopen("$addr", "r");
599 global $url, $str, $dist, $arch;
602 echo "<h1>"._("Search results for")." '$str' "._("in")." $dist/$arch</h1>";
607 echo _("Sorry, cannot open.");
609 while (($s = fgets($f, 1000)) != false) {
610 if (stristr($s, "Query done at:")) {
611 echo "rpmqa database from " . strstr($s, ":") . "\n";
615 if (stristr($s, $str))
623 function dump_qa($plain)
625 global $url, $dist, $arch;
630 header("Content-type: text/plain");
631 echo _("# rpm -qa of")." $dist/$arch\n";
633 echo "<h1>"._("rpm -qa of")." $a</h1>";
634 echo "<a href=\"$url?dist=$dist&arch=$arch&action=qatxt\">"._("text/plain version")."</a>";
639 echo _("Sorry, cannot open.");
641 while (($s = fgets($f, 1000)) != false) {
651 function adv_search()
653 global $database, $addr, $fail_or_ok, $url, $_POST, $off, $cnt, $root_directory, $ok, $ns;
655 $big_url = "$url?ok=$ok&ns=$ns&cnt=$cnt";
657 echo "<script><!--\n".
658 "function checkboxToggle() {\n".
659 "for (var i=0;i<document.forms[0].elements.length;i++) {\n".
660 "var e = document.forms[0].elements[i];\n".
661 "if ((e.name != 'all') && (e.type=='checkbox'))\n".
662 "e.checked = document.forms[0].all.checked;\n".
663 "}\n }\n -->\n </script>\n";
665 /* Shut up warnings */
666 if (!isset($_POST["n2"])) $_POST["n2"] = "";
667 if (!isset($_POST["age1"])) $_POST["age1"] = "";
668 if (!isset($_POST["age2"])) $_POST["age2"] = "";
669 if (!isset($_POST["size1"])) $_POST["size1"] = "";
670 if (!isset($_POST["size2"])) $_POST["size2"] = "";
672 echo "<form action=\"index.php?action=adv_search\" method=\"post\">";
674 echo "<div align=\"center\">";
675 echo "<table border=\"0\">\n";
677 echo "<td>"._("Package name")."</td>\n";
678 echo "<td><input type=\"text\" size=\"20\" name=\"n2\" value=\"". $_POST["name"] ."\"/></td>\n";
682 echo "<td>"._("Days")."</td>\n";
683 echo "<td>"._("From").": <input type=\"text\" size=\"20\" name=\"age1\" value=\"". $_POST["age1"] ."\" /></td>\n";
684 echo "<td>"._("To").": <input type=\"text\" size=\"20\" name=\"age2\" value=\"". $_POST["age2"] ."\" /></td>\n";
688 echo "<td>"._("Size")."</td>\n";
689 echo "<td>"._("From").": <input type=\"text\" size=\"20\" name=\"size1\" value=\"". $_POST["size1"] ."\" /></td>\n";
690 echo "<td>"._("To").": <input type=\"text\" size=\"20\" name=\"size2\" value=\"". $_POST["size2"] ."\" /></td>\n";
694 echo "<td>"._("Search logs:")."</td>\n";
698 echo "<td>"._("Failed")."</td>\n";
699 echo "<td>"._("OK")."</td>\n";
703 foreach ($addr as $dist => $ddist) {
704 foreach ($ddist as $arch) {
707 if (!isset($_POST["$name"])) {
710 $check=" checked='checked'";
712 echo "<td><input name=\"$name\" id=\"$name\" type=\"checkbox\"$check /><label for=\"$name\">". "$dist/$arch" ."</label></td>\n";
714 if (!isset($_POST["$n2"])) {
717 $check=" checked='checked'";
719 echo "<td><input name=\"$name\" id=\"$name\" type=\"checkbox\"$check /><label for=\"$name\">". "$dist/$arch" ."</label></td>\n";
726 echo "<td><label><input name=\"all\" type=\"checkbox\" checked=\"on\" onClick=\"checkboxToggle()\">"._("Toggle checkboxes")."</label> <input type=\"submit\" name=\"submit\" value=\""._("Search!")."\" /></td>";
731 // if (isset($_POST["name"]) || isset($_POST["age1"]) || isset($_POST["age2"]) ||
732 // isset($_POST["size1"]) || isset($_POST["size2"])
733 if (($_POST["n2"]!="") || ($_POST["age1"]!="") || ($_POST["age2"]!="") ||
734 ($_POST["size1"]!="") || ($_POST["size2"]!=""))
736 $query = "SELECT log_id, dist, arch, ok, name, size, mtime, id FROM logs WHERE 1 ";
737 if ($_POST["n2"] != "") {
738 $n = addslashes($_POST["n2"]);
739 $query .= "AND name LIKE '$n%' ";
743 if ($_POST["age1"] != "") {
744 $age = $now - (int)$_POST["age1"] * 24 * 3600;
745 $query .= "AND mtime > $age ";
748 if ($_POST["age2"] != "") {
749 $age = $now - (int)$_POST["age2"] * 24 * 3600;
750 $query .= "AND mtime < $age ";
753 if ($_POST["size1"] != "") {
754 $size = (int)$_POST["size1"];
755 $query .= "AND size > $size ";
758 if ($_POST["size2"] != "") {
759 $size = (int)$_POST["size2"];
760 $query .= "AND size < $size ";
765 foreach ($addr as $dist => $ddist) {
766 foreach ($ddist as $arch) {
767 for ($j = 0; $j < 2; $j++) {
768 if (isset($_POST["as" . $j . "_" .$i])) {
769 $query .= "$or (dist = '$dist' AND arch = '$arch' AND ok = $j)";
776 if ($or == " OR ") $query .= ")";
777 // if (!isset($cnt)) $cnt = 50;
778 // if (!isset($off)) $off = 0;
779 if (!isset($ns)) $ns = 0;
782 $query .= " ORDER BY mtime DESC";
785 $query .= " ORDER BY name";
788 $query .= " ORDER BY dist, arch, name";
791 $query .= " LIMIT $cnt OFFSET $off ";
794 $dbh = new PDO("$database");
795 } catch (PDOException $e) {
796 mydie("new PDO: " . $e->getMessage());
798 $result = $dbh->query("$query")->fetchAll();
800 if ($result == FALSE) {
801 echo _("Nothing found");
803 echo "<table border=\"0\" cellspacing=\"1\" ".
804 "cellpadding=3 bgcolor=\"#000000\" width=\"90%\">\n";
805 echo "<tr><th bgcolor=\"#CCCCFF\" align=\"left\" width=\"10%\">"._("Builder").
806 "[<a href=\"$big_url&ns=2\">"._("sort")."</a>]</th>";
807 echo "<th bgcolor=\"#CCCCFF\" align=\"left\" width=\"60%\">"._("Log File").
808 "[<a href=\"$big_url&ns=1\">"._("sort")."</a>]</th>".
809 "<th bgcolor=\"#CCCCFF\" align=\"right\" width=\"15%\">"._("Size")."</th> ".
810 "<th bgcolor=\"#CCCCFF\" align=\"left\">"._("Age").
811 "[<a href=\"$big_url&ns=0\">"._("sort")."</a>]</th>".
814 // for ($i = $off; $i < $off + $count; $i++) {
815 foreach ($result as $row) {
816 $dist = $row["dist"];
817 $arch = $row["arch"];
818 $name = $row["name"];
819 $name_url = urlencode($name);
822 $t = $now - $row["mtime"];
830 $t = $t . " " . ngettext("day","days",$t);
833 $t = $t . " " . ngettext("hour","hours",$t);
837 $t = $t . " " . ngettext("minute","minutes",$t);
840 // $big_url = "$url?idx=$i&ok=$j&ns=$ns&cnt=$cnt";
842 $u = "$url?dist=$dist&arch=$arch&name=$name_url&ok=$ok&id=$id";
843 $b = "$url?dist=$dist&arch=$arch&ok=$ok&ns=$ns&off=$off&cnt=$cnt";
845 $builder = "$dist/$arch/". $fail_or_ok[$ok];
847 echo "<td bgcolor=\"#CCCCCC\"><a href=\"$b\">$builder</a></td>";
848 echo "<td bgcolor=\"#CCCCCC\"><a href=\"$u\">$f</a> ".
849 "[<a href=\"$u&action=text\">"._("text")."</a> | ".
850 "<a href=\"$u&action=tail\">"._("tail")."</a>]".
851 "</td><td bgcolor=\"#CCCCCC\" align=\"right\">".
852 "$s</td><td bgcolor=\"#CCCCCC\">$t</td></tr>\n";
855 echo "</table></div>\n";
857 $backarr = "<<< ";
858 $back = _("Page back");
859 $forward = _("Page forward");
860 $forwardarr = " >>>";
865 echo "<p><table width=\"90%\" align=\"center\"><tr><td align=left width=1%>";
871 $hrefurl = "<a href=\"$big_url&off=$noff\">";
872 echo "$hrefurl$backarr</a></td><td align=left>$hrefurl$back</a>";
874 echo "$backarr</td><td align=left>$back";
877 echo "</td>\n<td align=\"center\">";
878 echo "</td>\n<td align=\"right\">";
880 if ($off + $cnt < count($list))
885 $hrefurl = "<a href=\"$big_url&off=$noff\">";
886 echo "$hrefurl$forward</a></td><td align=\"right\" width=\"1%\">$hrefurl$forwardarr</a>";
890 echo "$forward</td><td align=\"right\" width=\"1%\">$forwardarr";
893 echo "</td>\n</tr></table></p>";
897 echo _("Enter something!");
899 echo "</div></form>\n";
905 <table border="0" width="100%"><tr><td width="20%"> </td><td>
906 <h1><?=_("Welcome!")?></h1>
907 <p><?=_("Welcome to PLD Build Logs WWW interface.")?></p><p>
908 <?=_("Feel free to email bug reports, complaints and feature requests ")?>
909 <!-- ech... niech strace... -->
910 <a href="mailto:feedback@pld-linux.org"><?=_("to us")?></a>. <?=_("Positive opinions are also")?>
911 <a href="mailto:feedback@pld-linux.org"><?=_("welcome")?></a> ;)</p>
912 <p>Version: $Id: index.php,v 1.34 2014/10/18 10:15:22 arekm Exp $</p>
913 </td><td width="20%"> </td></tr>
918 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
919 header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
920 header("Cache-Control: no-cache, must-revalidate");
921 header("Pragma: no-cache");
924 if ($action == "text") {
926 } else if ($action == "adv_search") {
930 } else if ($action == "qatxt") {
934 echo "<table cellpadding=\"10\" width=\"100%\"><tr><td valign=\"top\" width=\"10%\">";
936 echo "</td><td valign=\"top\">";
940 else if ($action == "sqa")
942 else if (isset($id) || isset($name))
943 dump_log($action == "tail");
944 else if (isset($dist))
948 echo "</td></tr></table>";