]> git.pld-linux.org Git - projects/buildlogs.git/blob - obsolete/buildlogs/index.php
Put rev number on page so we know which one is in use.
[projects/buildlogs.git] / obsolete / buildlogs / index.php
1 <?php
2 $buildlogs_server = "buildlogs.pld-linux.org";
3 $url = "index.php";
4 $addr = array(
5         "/th/SRPMS",
6         "/th/i486",
7         "/th/i686",
8         "/th/athlon",
9         "/th/amd64",
10         "/th/ia64",
11         "/th/alpha",    
12         "/th/sparc",
13         "/th/ppc",
14         "/ac/SRPMS",
15         "/ac/i386",
16         "/ac/i586",
17         "/ac/i686",
18         "/ac/athlon",
19         "/ac/amd64",
20         "/ac/alpha",    
21         "/ac/sparc",
22         "/ac/ppc",
23         "/ra/i386",
24         "/ra/i586",
25         "/ra/i686",
26         "/ra/alpha",    
27         "/ra/sparc",
28         "/ra/ppc",
29         "/nest/i486",
30         "/nest/i686",
31         "/nest/alpha",
32         "/nest/ppc"
33 );
34 $qa_addr = array(
35         "http://ftp.pld-linux.org/dists/th/.stat/builder/th/rpmqa-SRPMS.txt",
36         "http://ftp.pld-linux.org/dists/th/.stat/builder/th/rpmqa-i486.txt",
37         "http://ftp.pld-linux.org/dists/th/.stat/builder/th/rpmqa-i686.txt",
38         "http://ftp.pld-linux.org/dists/th/.stat/builder/th/rpmqa-athlon.txt",
39         "http://ftp.pld-linux.org/dists/th/.stat/builder/th/rpmqa-amd64.txt",
40         "http://ftp.pld-linux.org/dists/th/.stat/builder/th/rpmqa-ia64.txt",
41         "http://ftp.pld-linux.org/dists/th/.stat/builder/th/rpmqa-alpha.txt",   
42         "http://ftp.pld-linux.org/dists/th/.stat/builder/th/rpmqa-sparc.txt",
43         "http://ftp.pld-linux.org/dists/th/.stat/builder/th/rpmqa-ppc.txt",
44         "http://ftp.pld-linux.org/dists/ac/.stat/builder/ac/ep09/rpmqa-src.txt",
45         "http://ftp.pld-linux.org/dists/ac/.stat/builder/ac/StarGate/rpmqa-i386.txt",
46         "http://ftp.pld-linux.org/dists/ac/.stat/builder/ac/rpmqa-i586.txt",
47         "http://ftp.pld-linux.org/dists/ac/.stat/builder/ac/olimp/rpmqa-i686.txt",
48         "http://ftp.pld-linux.org/dists/ac/.stat/builder/ac/aksjomat/rpmqa-athlon.txt",
49         "http://ftp.pld-linux.org/dists/ac/.stat/builder/ac/serwus/rpmqa-amd64.txt",
50         "http://ftp.pld-linux.org/dists/ac/.stat/builder/ac/alpha/rpmqa-alpha.txt",     
51         "http://ftp.pld-linux.org/dists/ac/.stat/builder/ac/syriusz/rpmqa-sparc.txt",
52         "http://ftp.pld-linux.org/dists/ac/.stat/builder/ac/anduril/rpmqa-ppc.txt",
53         "http://ftp.pld-linux.org/dists/ra/.stat/builder/liniowiec/rpmqa-ra-i386.txt",
54         "http://ftp.pld-linux.org/dists/ra/.stat/builder/liniowiec/rpmqa-ra-i586.txt",
55         "http://ftp.pld-linux.org/dists/ra/.stat/builder/liniowiec/rpmqa-ra-i686.txt",
56         "http://ftp.pld-linux.org/dists/ra/.stat/builder/fly/rpmqa-ra-alpha.txt",       
57         "http://ftp.pld-linux.org/dists/ra/.stat/builder/ares/rpmqa-ra-sparc.txt",
58         "http://ftp.pld-linux.org/dists/ra/.stat/builder/an2/rpmqa-ra-ppc.txt",
59         "http://ftp.nest.pld-linux.org/.stat/builder/kenny/rpmqa-nest-i486.txt",
60         "http://ftp.nest.pld-linux.org/.stat/builder/kenny/rpmqa-nest-i686.txt",
61         "http://ftp.nest.pld-linux.org/.stat/builder/alpha/rpmqa-nest-alpha.txt",
62         "http://ftp.nest.pld-linux.org/.stat/builder/an2/rpmqa-nest-ppc.txt"
63 );
64 $local = 1; /* $local=0 for FTP */ 
65 $root_directory = "/home/services/ftp/pub/pld-buildlogs";
66 $ftp_conn = 0;
67 /* It should be set */
68
69 $langs["en_US"]["charset"]="ISO-8859-1";
70 $langs["pl_PL"]["charset"]="ISO-8859-2";
71
72 $lang="en_US";
73 if (isset($_SERVER["HTTP_ACCEPT_LANGUAGE"]))
74 {
75   $rows=explode(";",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
76   $rows=explode(",",$rows[0]);
77   $lang_detected=rtrim($rows[0]);
78 } else if (preg_match("/opera/i",$_SERVER["HTTP_USER_AGENT"]))
79 {
80   $lang_detected=preg_replace("/.*\[(.*)\].*/i","\\1",$_SERVER["HTTP_USER_AGENT"]);
81 }
82
83 // FIXME - some array
84 $lang_detected=preg_replace("/^pl$/i","pl_PL",$lang_detected);
85
86 if (isset($lang_detected) && isset($langs[$lang_detected]))
87 {
88   $lang=$lang_detected;
89 }
90
91 if (isset($_GET["lang"]))$_SESSION["lang"]=$_GET["lang"];
92 if (isset($_SESSION["lang"]))$lang=$_SESSION["lang"];
93
94 putenv("LANG=$lang");
95 setlocale(LC_ALL,$lang);
96 bindtextdomain("messages","locale");
97 textdomain("messages");
98
99 if (isset($_GET["idx"]))$idx=$_GET["idx"];
100 if (isset($_GET["dist"]))
101 {
102         $dist=$_GET["dist"];
103         if (isset($_GET["arch"]))
104         {
105                 $arch=$_GET["arch"];
106                 for ($i = 0; $i < count($addr); $i++)
107                 {
108                         if ($addr[$i]=="/".$dist."/".$arch)
109                                 $idx=$i;
110                 }
111         }
112 }
113 if (isset($_GET["ok"]))$ok=$_GET["ok"];
114 else $ok="";
115 if (isset($_GET["ns"]))$ns=$_GET["ns"];
116 else $ns="";
117 if (isset($_GET["cnt"]))$cnt=$_GET["cnt"];
118 if (isset($_GET["action"]))$action=$_GET["action"];
119 else $action="";
120 if (isset($_GET["off"]))$off=$_GET["off"];
121 if (isset($_GET["id"]))$id=$_GET["id"];
122
123 if (isset($_POST["str"]))$str=$_POST["str"];
124 if (isset($_POST["idx"]))$idx=$_POST["idx"];
125 if (isset($_POST["action"]))$action=$_POST["action"];
126
127 function myheader()
128 {
129 echo '<' . '?xml version="1.0" encoding="' . _("ISO-8859-1") .'"?' . ">\n";
130 echo '<' . '?xml-stylesheet href="#internalStyle" type="text/css"?' . ">\n";
131 ?>
132 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
133     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
134 <html xmlns="http://www.w3.org/1999/xhtml">
135  <head>
136   <title>PLD Build Logs</title>
137   <?php echo '<meta http-equiv="Content-type" content="text/html; charset=' . _("ISO-8859-1") .'"/>' ."\n";?>
138   <style type="text/css"><!--
139 A { text-decoration: none; }
140 A:hover { text-decoration: underline; }
141 H1 { font-family: arial,helvetica,sans-serif; 
142      font-size: 20pt; 
143      font-weight: bold;}
144 H2 { font-family: arial,helvetica,sans-serif; 
145      font-size: 18pt; 
146      font-weight: bold;}
147 BODY,TD { font-family: arial,helvetica,sans-serif; 
148           font-size: 13pt; }
149 TH { font-family: arial,helvetica,sans-serif; 
150      font-size: 13pt; 
151      font-weight: bold; }
152 //-->
153 </style>
154  </head>
155  <!-- Diffrent color for visited link doesn't make much sense here...
156       this page is autogenerated and it might be misleading after some
157       build log changes. -->
158  <body bgcolor="#ffffff" text="#000000" link="#5f26cd" vlink="#5f26cd">
159 <?php
160 }
161
162 function start_pre()
163 {
164         echo "<table cellpadding=\"10\"><tr><td bgcolor=\"#000000\">".
165                 "<font color=\"#cccccc\"><pre>";
166 }
167
168 function end_pre()
169 {
170         echo "</pre></font></td></tr></table>\n";
171 }
172
173 function trailer()
174 {
175         echo "</body></html>";
176 }
177
178
179 function mydie($msg)
180 {
181         echo "Fatal error: $msg";
182 }
183
184 function open_ftp($pidx="", $pok="")
185 {
186         global $idx, $addr, $buildlogs_server, $ok;
187         global $ftp_conn, $big_url, $url, $ns;
188         global $off, $cnt;
189         
190         if ($pidx==="")$pidx=$idx;
191         if ($pok==="")$pok=$ok;
192
193         if (!isset($pidx) || !isset($addr[$pidx]))
194                 return false;
195
196         if ($pok != 1)
197                 $pok = 0;
198         if ($ns != 1)
199                 $ns = 0;
200
201         if ($pok == 1) {
202                 $a = "$addr[$pidx]/OK";
203         } else {
204                 $a = "$addr[$pidx]/FAIL";
205         }
206
207         if (!isset($off))
208                 $off = 0;
209         if (!isset($cnt))
210                 $cnt = 16;
211
212         $big_url = "$url?idx=$idx&amp;ok=$ok&amp;ns=$ns&amp;cnt=$cnt";
213
214         $ftp = ftp_connect($buildlogs_server);
215
216         if ($ftp == false) {
217                 mydie(_("cannot connect to")." $buildlogs_server");
218                 return false;
219         }
220
221         if (ftp_login($ftp, "anonymous", 
222                       "buildlogs-iface@pld-linux.org") == false) {
223                 ftp_quit($ftp);
224                 mydie(_("cannot ftp login to")." $buildlogs_server");
225                 return false;
226         }
227
228         $list = ftp_nlist($ftp, $a);
229         if ($list == false) {
230                 ftp_quit($ftp);
231                 mydie(_("cannot list")." $a");
232                 return false;
233         }
234
235         $ftp_conn = $ftp;
236
237         return $list;
238 }
239
240 function directory_list($pidx="",$pok="")
241 {
242         global $idx, $addr, $buildlogs_server, $ok;
243         global $root_directory, $big_url, $url, $ns;
244         global $off, $cnt;
245
246         if ($pidx==="")$pidx=$idx;
247         if ($pok==="")$pok=$ok;
248         if (!isset($pidx) || !isset($addr[$pidx]))
249                 return false;
250
251         if ($pok != 1)
252                 $pok = 0;
253         if ($ns != 1)
254                 $ns = 0;
255
256         if ($pok == 1) {
257                 $a = "$addr[$pidx]/OK";
258         } else {
259                 $a = "$addr[$pidx]/FAIL";
260         }
261
262         if (!isset($off))
263                 $off = 0;
264         if (!isset($cnt))
265                 $cnt = 16;
266
267         $big_url = "$url?idx=$idx&amp;ok=$ok&amp;ns=$ns&amp;cnt=$cnt";
268
269         $dir = opendir("$root_directory$a");
270         $i = 0;
271         $list = array ();
272         while ($file = readdir($dir)) {
273                 if (($file != ".") && ($file != "..")) {
274                         $list[$i] = "$a/$file";
275                         $i++;
276                 }
277         }
278         closedir($dir);
279         return $list;
280 }
281
282 function list_logs()
283 {
284         global $idx, $addr, $ok;
285         global $ftp_conn, $big_url, $ns, $qa_addr;
286         global $off, $cnt, $local, $root_directory;
287
288         if ($local) {
289                 $list = directory_list();
290         } else {
291                 $list = open_ftp();
292         }
293         if ($list == false)
294                 return;
295
296         if ($ok == 1) {
297                 echo "<h1>"._("Listing of")." $addr[$idx]/OK "
298                         ."(<a href=\"$big_url&amp;ok=0\">"._("fail")."</a>)</h1>\n";
299         } else {
300                 echo "<h1>"._("Listing of")." $addr[$idx]/FAIL "
301                         ."(<a href=\"$big_url&amp;ok=1\">"._("ok")."</a>)</h1>\n";
302         }
303
304         echo "<div align=\"center\"><table cols=\"4\" border=\"0\" cellspacing=\"1\" ".
305                 "cellpadding=\"3\" bgcolor=\"#000000\" width=\"90%\">\n";
306         echo "<tr><th bgcolor=\"#CCCCFF\" align=\"right\" width=\"1%\">"._("No.")."</th>".
307                  "<th bgcolor=\"#CCCCFF\" align=\"left\" width=\"80%\">"._("Log File").
308                         "[<a href=\"$big_url&amp;ns=1\">"._("sort")."</a>]</th>".
309                  "<th bgcolor=\"#CCCCFF\" align=\"right\" width=\"15%\">"._("Size")."</th> ".
310                  "<th bgcolor=\"#CCCCFF\" align=\"left\">"._("Age").
311                          "[<a href=\"$big_url&amp;ns=0\">"._("sort")."</a>]</th>".
312                  "</tr>";
313
314         function cmp($f1, $f2) {
315                 global $ftp_conn, $root_directory, $local;
316                 if ($local)
317                         return filemtime("$root_directory$f2") - filemtime("$root_directory$f1");
318                 return ftp_mdtm($ftp_conn, $f2) - ftp_mdtm($ftp_conn, $f1);
319         }
320
321         if ($ns != 1) {
322                 $ns = 0;
323                 usort($list, "cmp");
324         } else {
325                 sort($list);
326         }
327
328         $now = time();
329         for ($i = $off; $i < $cnt + $off; $i++) {
330                 if (!isset($list[$i]))
331                         continue;
332                 $h = bin2hex(mhash(MHASH_MD5, $list[$i]));
333                 $f = preg_replace("/.*\/([^\/]*)$/", "\\1", $list[$i]);
334                 $f = preg_replace("/\.(bz2|gz)$/", "", $f);
335                 if ($local) {
336                         $s = filesize("$root_directory$list[$i]");
337                         $t = $now - filemtime("$root_directory$list[$i]");
338                 } else {
339                         $s = ftp_size($ftp_conn, $list[$i]);
340                         $t = $now - ftp_mdtm($ftp_conn, $list[$i]);
341                 }
342                 $t /= 60;
343                 if ($t >= 60) {
344                         $t /= 60;
345                         if ($t >= 24) {
346                                 $t /= 24;
347                                 $t = round($t);
348                                 $t = $t . "&nbsp;" . ngettext("day","days",$t);
349                         } else {
350                                 $t = round($t);
351                                 $t = $t . "&nbsp;" . ngettext("hour","hours",$t);
352                         }
353                 } else {
354                         $t = round($t);
355                         $t = $t . "&nbsp;" . ngettext("minute","minutes",$t);
356                 }
357                 $u = "$big_url&amp;off=$off&amp;id=$h";
358                 echo "<tr><td bgcolor=\"#CCCCCC\" align=\"right\">".($i+1).".</td>".
359                      "<td bgcolor=\"#CCCCCC\"><a href=\"$u\">$f</a> ".
360                      "[<a href=\"$u&amp;action=text\">"._("text")."</a> | ".
361                       "<a href=\"$u&amp;action=tail\">"._("tail")."</a>]".
362                      "</td><td bgcolor=\"#CCCCCC\" align=\"right\">".
363                      "$s</td><td bgcolor=\"#CCCCCC\">$t</td></tr>\n";
364         }
365         echo "</table></div>\n";
366
367         $backarr = "&lt;&lt;&lt;&nbsp;";
368         $back = _("Page back");
369         $forward = _("Page forward");
370         $forwardarr = "&nbsp;&gt;&gt;&gt;";
371
372         echo "<p><table width=\"90%\" align=\"center\"><tr><td align=\"left\" width=\"1%\">";
373
374         if ($off > 0) {
375                 $noff = $off - $cnt;
376                 if ($noff < 0)  
377                         $noff = 0;
378                 $hrefurl = "<a href=\"$big_url&amp;off=$noff\">";
379                 echo "$hrefurl$backarr</a></td><td align=\"left\">$hrefurl$back</a>";
380         } else {
381                 echo "$backarr</td><td align=\"left\">$back";
382         }
383
384         echo "</td>\n<td align=\"center\">";
385
386         if ($qa_addr[$idx] != "") {
387                 echo "[<a href=\"$big_url&amp;action=qa\">"._("View <quot>rpm&nbsp;-qa</quot> of builder")."</a>]";
388         } else {
389                 echo "&nbsp;";
390         }
391
392         echo "</td>\n<td align=right>";
393         if ($off + $cnt < count($list)) {
394                 $noff = $off + $cnt;
395                 if ($noff < 0)  
396                         $noff = 0;
397                 $hrefurl = "<a href=\"$big_url&amp;off=$noff\">";
398                 echo "$hrefurl$forward</a></td><td align=right width=1%>$hrefurl$forwardarr</a>";
399         } else {
400                 echo "$forward</td><td align=right width=1%>$forwardarr";
401         }
402         echo "</td>\n</tr></table></p>";
403         if ($local == 0) {
404                 ftp_quit($ftp_conn);
405                 $ftp_conn = 0;
406         }
407 }
408
409 function file_name()
410 {
411         global $idx, $addr, $ok;
412         global $ftp_conn, $root_directory, $big_url, $ns, $id;
413         global $buildlogs_server, $local;
414
415         if (!isset($id))
416                 return false;
417         if ($local) {
418                 $list = directory_list();
419         } else {
420                 $list = open_ftp();
421         }
422         if ($list == false)
423                 return false;
424
425         $f = false;
426         for ($i = 0; $i < count($list); $i++) {
427                 $h = bin2hex(mhash(MHASH_MD5, $list[$i]));
428                 if ($h == $id) {
429                         $f = $list[$i];
430                 }
431         }
432
433         if ($f == false) {
434                 mydie(_("cannot find specified file:")." $id");
435                 if ($local == 0)
436                         ftp_quit($ftp_conn);
437                 return false;
438         }
439
440         return $f;
441 }
442
443 function dump_log($tail)
444 {
445         global $idx, $addr, $ok, $url;
446         global $ftp_conn, $root_directory, $big_url, $ns, $id, $cnt, $off;
447         global $buildlogs_server, $local, $qa_addr;
448
449         $f = file_name();
450
451         if ($f == false)
452                 return;
453
454         $df = preg_replace("/.*\/([^\/]*)$/", "\\1", $f);
455         $df = preg_replace("/\.(bz2|gz)$/", "", $df);
456
457         echo "<h1>$df</h1>";
458
459         echo "<table border=\"0\" cellpadding=\"3\" cellspacing=\"1\" bgcolor=\"#000000\">";
460
461         function one_item($h, $t) {
462                 echo "<tr><td bgcolor=\"#ccccff\">$h:</td>".
463                          "<td bgcolor=\"#cccccc\">$t</td></tr>";
464         }
465
466         function href($h, $c) {
467                 return "<a href=\"$h\">$c</a>";
468         }
469
470         one_item(_("Status"), ($ok == 1 ?  
471                                 "<font color=\"green\"><b>"._("OK")."</b></font>" : 
472                                 "<font color=\"red\"><b>"._("Failed")."</b></a>"));
473         one_item(_("Source URL"), 
474                  href("ftp://$buildlogs_server$f", 
475                       "ftp://$buildlogs_server$f"));
476
477         $bu = "$big_url&amp;off=$off";
478
479         one_item(_("text/plain URL"), 
480                  href("$bu&amp;id=$id&amp;action=text",
481                       _("View!")));
482         if ($tail) {
483                 one_item(_("full text"), 
484                          href("$bu&amp;id=$id",
485                               "View!"));
486         }
487
488         if ($qa_addr[$idx] != "") {
489                 one_item(_("rpm -qa of builder"), href("$bu&amp;action=qa", _("View!")));
490         } else {
491                 one_item(_("rpm -qa of builder"), _("Not available"));
492         }
493         if ($local) {
494                 one_item("Data", date("Y/m/d H:i:s", filemtime("$root_directory$f")));
495         } else {
496                 one_item("Data", date("Y/m/d H:i:s", ftp_mdtm($ftp_conn, $f)));
497         }
498         /*
499         echo "<tr><td>Here:</td><td>" . 
500                 "<a href=\"$url?idx=$idx&amp;ok=$ok&amp;id=$id\">".
501                 "http://" . getenv("SERVER_NAME") .
502                 getenv("SCRIPT_NAME") . "?idx=$idx&amp;ok=$ok&amp;id=$id</a>" .
503              "</td></tr>"; */
504
505         echo "</table><h2>"._("Content:")."</h2>";
506
507         if ($local == 0) {
508                 ftp_quit($ftp_conn);
509                 $ftp_conn = 0;
510         }
511
512
513         # what can I say beside PHP suxx? how the fuck should I create
514         # bidirectional pipe? gotta use wget
515
516         if (preg_match("/\.bz2$/", $f)) {
517                 $filter = "bzcat";
518         } elseif (preg_match("/\.gz$/", $f)) {
519                 $filter = "zcat";
520         } else {
521                 $filter = "cat";
522         }
523
524         if ($local) {
525                 $cmd = "$filter $root_directory$f";
526         } else {
527                 $cmd = "wget -q -O - ftp://$buildlogs_server$f 2>&1 | $filter 2>&1";
528         }
529         if ($tail)
530                 $cmd = "$cmd | tail -n 100";
531         $fd = popen($cmd, "r");
532         start_pre();
533         while (($s = fgets($fd, 102400)) != false) {
534                 $s = chunk_split($s, 800, "\n    ");
535                 $s = htmlspecialchars($s);
536                 echo $s;
537         }
538         end_pre();
539         pclose($fd);
540
541 ?>
542         <table width="100%">
543          <tr>
544           <td align=left>
545            [<a href="<?php echo $bu; ?>"><?=_("Back to list of logs")?></a>]
546           </td>
547           <td align=right>
548            [<a href="<?php echo "$bu&amp;action=qa" 
549                 ?>"><?=_("View rpm -qa of builder")?></a>]
550           </td>
551          </tr>
552         </table>
553 <?php
554
555 }
556
557 function dump_text()
558 {
559         global $ftp_conn, $root_directory;
560         global $buildlogs_server, $local;
561
562         header("Content-type: text/plain");
563
564         $f = file_name();
565
566         if ($f == false)
567                 return;
568
569         echo "# src  : ftp://$buildlogs_server$f\n";
570         if ($local) {
571                 echo "# date   : " .  
572                         date("Y/m/d H:i:s", filemtime("$root_directory$f")) . "\n";
573         } else {
574                 echo "# date   : " .  
575                         date("Y/m/d H:i:s", ftp_mdtm($ftp_conn, $f)) . "\n";
576                 ftp_quit($ftp_conn);
577                 $ftp_conn = 0;
578         }
579
580         if (preg_match("/\.bz2$/", $f)) {
581                 $filter = "bzcat";
582         } elseif (preg_match("/\.gz$/", $f)) {
583                 $filter = "zcat";
584         } else {
585                 $filter = "cat";
586         }
587
588         if ($local) {
589                 $cmd = "$filter $root_directory$f";
590         } else {
591                 $cmd = "wget -q -O - ftp://$buildlogs_server$f 2>&1 | $filter 2>&1";
592         }
593         $fd = popen($cmd, "r");
594         while (($s = fgets($fd, 1000)) != false) {
595                 echo $s;
596         }
597         pclose($fd);
598 }
599
600 function list_archs()
601 {
602         global $addr, $url, $idx, $cnt,$ok,$ns;
603
604         if (!isset($cnt))
605                 $cnt = 16;
606
607         $big_url = "$url?idx=$idx&amp;ok=$ok&amp;ns=$ns&amp;cnt=$cnt";
608
609         echo "<table width=\"100%\" border=\"0\">\n";
610         echo "<tr><td bgcolor=\"#cccccc\" nowrap=\"nowrap\">"._("Failed")."</td><td bgcolor=\"#cccccc\">"._("Ok")."</td></tr>\n";
611         for ($i = 0; $i < count($addr); $i++)
612                 echo "<tr><td nowrap=\"nowrap\">".
613                      "<a href=\"$url?idx=$i&amp;ok=0&amp;cnt=$cnt\">$addr[$i]</a></td><td nowrap=\"nowrap\">".
614                      "[<a href=\"$url?idx=$i&amp;ok=1&amp;cnt=$cnt\">OK</a>]</td>".
615                      #"<td>[<a href=\"$url?idx=$i&amp;action=qa\">qa</a>]</td>".
616                      "</tr>\n";
617         echo "</table><hr />\n";
618         
619         echo "<div align=\"center\">";
620         echo "<a href=\"$big_url&amp;action=adv_search\">"._("Advanced Search")."</a><br />\n";
621         
622         echo "<a href=\"$url\">main()</a><hr />\n";
623         echo "<a href=\"http://www.pld-linux.org/\"><img src=\"powpld.png\" ".
624                 "alt=\""._("Powered by PLD Linux")."\" border=\"0\" /></a><br />\n" .
625              "<small>(c) 2002 ".
626              "<a href=\"mailto:feedback@pld-linux.org\">PLD&nbsp;Team</a><br />\n".
627              '$Revision:$'.
628              "</small></div>\n";
629
630         # smile ;)
631         echo "<div align=\"center\"><small>";
632         $pow = array("vim", "php", "brain", "power", "electricity",
633                      "coffee", "ufo", "penguin", "GNOME", "ELF", "DWARF",
634                      "voodoo magic", "Linux", "x-files", "X", "foobar",
635                      "/dev/null", "/dev/zero", "/dev/drzewo", 
636                      "Leppe'", "matrix", "Neo", "PDP-11",
637                      "Ken", "GNU antilope", "PDP-7", "ITS", "Multics",
638                      "foobarbaz", "ed", "Joe", "Unix conspiracy", 
639                      "overclock", "The Right Thing",
640                      "The Bad Thing", "Star Treck", "NSA", "NASA",
641                      "achelon", "VAX", "Real Programmer",
642                      "Real Operating System", "Real Computer",
643                      "computron", "bogon", "quantum bogodynamics",
644                      "BOFH", "/dev/ill", "nasi tu byli",
645                      "Paranoid Android", "Lunatic Corp", "Parallel thinking",
646                      "sfistak", "Linus", "The Golden Path", "Dark Side of the Force",
647                      "Przewodniczacego Lepper-a", "KDE", "Microsoft Windows 2003"
648                      # feel free to add sth if you change this file ;)
649                      );
650         echo _("Powered by")." ";
651         $max = 1;
652         for ($i = 0; $i < $max; $i++) {
653                 $x = rand(0, count($pow) - 1);
654                 if ($pow[$x] == "") $i--;
655                 else echo $pow[$x] . ($i == $max - 1 ? "." : ", ");
656                 $pow[$x] = "";
657         }
658         echo "</small></div>";
659
660         global $qa_addr;
661
662         if (isset($qa_addr[$idx]) && $qa_addr[$idx] != "") {
663         echo "<form action=\"index.php\" method=\"post\">";
664         echo "<input type=\"hidden\" name=\"idx\" value=\"$idx\" />";
665         echo "<input type=\"hidden\" name=\"action\" value=\"sqa\" />";
666         echo "<input type=\"text\" size=\"14\" name=\"str\" /><br />";
667         echo "<input type=\"submit\" name=\"submit\" value=\""._("Search rpmqa!")."\" />";
668         echo "</form>";
669         }
670 }
671
672 function get_qa()
673 {
674         global $idx, $qa_addr;
675
676         if (!isset($idx) || !isset($qa_addr[$idx]))
677                 return false;
678
679         $a = $qa_addr[$idx];
680
681         if ($qa_addr[$idx] == "")
682                 return false;
683         else
684                 return fopen("$qa_addr[$idx]", "r");
685 }
686
687 function search_qa()
688 {
689         global $url, $idx, $qa_addr, $str;
690
691         $f = get_qa();
692         echo "<h1>"._("Search results for")." '$str' "._("in")." $qa_addr[$idx]</h1>";
693
694         start_pre();
695
696         if ($f == 0) {
697                 echo _("Sorry, cannot open.");
698         } else {
699                 while (($s = fgets($f, 1000)) != false) {
700                         if (stristr($s, $str))
701                                 echo $s;
702                 }
703                 echo "/* EOF */";
704         }
705         end_pre();
706 }
707
708 function dump_qa($plain)
709 {
710         global $url, $idx, $qa_addr;
711
712         $a = $qa_addr[$idx];
713
714         $f = get_qa();
715
716         if ($plain) {
717                 header("Content-type: text/plain"); 
718                 echo _("# rpm -qa of")." $a\n";
719         } else {
720                 echo "<h1>"._("rpm -qa of")." $a</h1>";
721                 echo "<a href=\"$url?idx=$idx&amp;action=qatxt\">"._("text/plain version")."</a>";
722                 start_pre();
723         }
724
725         if ($f == 0) {
726                 echo _("Sorry, cannot open.");
727         } else {
728                 while (($s = fgets($f, 1000)) != false) {
729                         echo $s;
730                 }
731         }
732
733         if (!$plain)
734                 end_pre();
735 }
736
737
738 function adv_search()
739 {
740   global $addr, $url, $local, $_POST, $off, $cnt, $root_directory;
741
742   $big_url = "$url?idx=$idx&amp;ok=$ok&amp;ns=$ns&amp;cnt=$cnt";
743
744   echo "<form action=\"index.php?action=adv_search\" method=\"post\">";
745
746   echo "<div align=\"center\">";
747   echo "<table border=\"0\">\n";
748   echo "<tr>\n";
749   echo "<td>"._("Package name")."</td>\n";
750   echo "<td><input type=\"text\" size=\"20\" name=\"name\" value=\"".$_POST[name]."\"/></td>\n";
751   echo "</tr>\n";
752
753   echo "<tr>\n";
754   echo "<td>"._("Days")."</td>\n";
755   echo "<td>"._("From").": <input type=\"text\" size=\"20\" name=\"age1\" value=\"".$_POST["age1"]."\" /></td>\n";
756   echo "<td>"._("To").": <input type=\"text\" size=\"20\" name=\"age2\" value=\"".$_POST["age2"]."\" /></td>\n";
757   echo "</tr>\n";
758
759   echo "<tr>\n";
760   echo "<td>"._("Size")."</td>\n";
761   echo "<td>"._("From").": <input type=\"text\" size=\"20\" name=\"size1\" value=\"".$_POST["size1"]."\" /></td>\n";
762   echo "<td>"._("To").": <input type=\"text\" size=\"20\" name=\"size2\" value=\"".$_POST["size2"]."\" /></td>\n";
763   echo "</tr>\n";
764
765   echo "<tr>\n";
766   echo "<td>"._("Search logs:")."</td>\n";
767   echo "</tr>\n";
768
769   echo "<tr>\n";
770   echo "<td>"._("Failed")."</td>\n";
771   echo "<td>"._("OK")."</td>\n";
772   echo "</tr>\n";
773
774   for ($i = 0; $i < count($addr); $i++)
775   {
776     echo "<tr>\n";
777     $name="as0_".$i;
778     $check=" checked=\"on\"";
779     echo "<td><input name=\"$name\" type=\"checkbox\"$check>".$addr[$i]."</input></td>\n";
780     $name="as1_".$i;
781     $check=" checked=\"on\"";
782     echo "<td><input name=\"$name\" type=\"checkbox\"$check>".$addr[$i]."</input></td>\n";
783     echo "</tr>\n";
784   }
785         
786   echo "<tr>\n";
787   echo "<td><input type=\"submit\" name=\"submit\" value=\""._("Search!")."\" /></td>";
788   echo "</tr>\n";
789
790   echo "</table>\n";
791
792 //      if (isset($_POST["name"]) || isset($_POST["age1"]) || isset($_POST["age2"]) ||
793 //        isset($_POST["size1"]) || isset($_POST["size2"]))
794   if (($_POST["name"]!="") || ($_POST["age1"]!="") || ($_POST["age2"]!="") ||
795     ($_POST["size1"]!="") || ($_POST["size2"]!=""))
796   {
797     unset($list);
798     $now = time();
799     for ($i = 0; $i < count($addr); $i++)
800     
801       for ($j=0;$j<2;$j++)
802         {
803           unset($tmp_list);
804           if (isset($_POST["as".$j."_".$i]))
805           {
806             if ($local) {
807                 $tmp_list = directory_list($i,$j);
808             } else {
809                 $tmp_list = open_ftp($i,$j);
810             }
811             if (is_array($tmp_list))
812             {
813               while (list($k,$name)=each($tmp_list))
814               {
815                 $s = filesize("$root_directory$name");
816                 $t = $now - filemtime("$root_directory$name");
817                 $t/=(24*3600);
818                 if (($_POST["name"]!="") && (!preg_match("/".$_POST["name"]."/i",$name)))continue;
819                 if (($_POST["age1"]) && ($_POST["age1"]>$t))continue;
820                 if (($_POST["age2"]) && ($_POST["age2"]<$t))continue;
821
822                 if (($_POST["size1"]) && ($_POST["size1"]>$s))continue;
823                 if (($_POST["size2"]) && ($_POST["size2"]<$s))continue;
824
825                 $list[$i."_".$j."_".$k]=$name;
826               }
827             }
828           }
829         }
830         
831         if (sizeof($list)==0)
832         {
833           echo _("Nothing found");
834         } else
835         {
836
837         echo "<table border=\"0\" cellspacing=\"1\" ".
838                 "cellpadding=3 bgcolor=\"#000000\" width=\"90%\">\n";
839         echo "<tr><th bgcolor=\"#CCCCFF\" align=\"left\" width=\"10%\">"._("Builder").
840              "[<a href=\"$big_url&amp;ns=2\">"._("sort")."</a>]</th>";
841         echo "<th bgcolor=\"#CCCCFF\" align=\"left\" width=\"60%\">"._("Log File").
842                         "[<a href=\"$big_url&amp;ns=1\">"._("sort")."</a>]</th>".
843                  "<th bgcolor=\"#CCCCFF\" align=\"right\" width=\"15%\">"._("Size")."</th> ".
844                  "<th bgcolor=\"#CCCCFF\" align=\"left\">"._("Age").
845                          "[<a href=\"$big_url&amp;ns=0\">"._("sort")."</a>]</th>".
846                  "</th></tr>";
847
848         function cmp1($f1, $f2) {
849                 global $ftp_conn, $root_directory, $local;
850                 if ($local)
851                         return filemtime("$root_directory$f2") - filemtime("$root_directory$f1");
852                 return ftp_mdtm($ftp_conn, $f2) - ftp_mdtm($ftp_conn, $f1);
853         }
854
855         function cmp2($f1, $f2) {
856           list($p11,$p12,$p13)=explode("_",$f1);
857           list($p21,$p22,$p23)=explode("_",$f2);
858           return strcmp($f2,$f1);
859         }
860
861         if ($ns == 1)
862         {
863           usort($list, "cmp1");
864 //      } else if ($ns == 2)
865 //      {
866 //        uksort($list, "cmp2");
867         } else
868         {
869           asort($list);
870         }
871
872         $counter=0;
873         while (list($k,$name)=each($list))
874         {
875         if (($counter<$off) || ($counter>$off+$cnt-1))
876         {
877           $counter++;
878           continue;
879         }
880
881           $counter++;
882           list($i,$j,$k)=explode("_",$k);
883
884                 $h = bin2hex(mhash(MHASH_MD5, $name));
885                 $f = preg_replace("/.*\/([^\/]*)$/", "\\1", $name);
886                 $f = preg_replace("/\.(bz2|gz)$/", "", $f);
887                 if ($local) {
888                         $s = filesize("$root_directory$name");
889                         $t = $now - filemtime("$root_directory$name");
890                 } else {
891                         $s = ftp_size($ftp_conn, $list[$i]);
892                         $t = $now - ftp_mdtm($ftp_conn, $list[$i]);
893                 }
894                 $t /= 60;
895                 if ($t >= 60) {
896                         $t /= 60;
897                         if ($t >= 24) {
898                                 $t /= 24;
899                                 $t = round($t);
900                                 $t = $t . "&nbsp;" . ngettext("day","days",$t);
901                         } else {
902                                 $t = round($t);
903                                 $t = $t . "&nbsp;" . ngettext("hour","hours",$t);
904                         }
905                 } else {
906                         $t = round($t);
907                         $t = $t . "&nbsp;" . ngettext("minute","minutes",$t);
908                 }
909                 $big_url = "$url?idx=$i&amp;ok=$j&amp;ns=$ns&amp;cnt=$cnt";
910                 $u = "$big_url&amp;off=$off&amp;id=$h";
911
912                 $builder=$addr[$i]."/".(($j=="1")?"OK":"FAIL");
913                 echo "<tr>";
914                 echo "<td bgcolor=\"#CCCCCC\"><a href=\"$u\">$builder</a></td>";
915                 echo "<td bgcolor=\"#CCCCCC\"><a href=\"$u\">$f</a> ".
916                      "[<a href=\"$u&amp;action=text\">"._("text")."</a> | ".
917                       "<a href=\"$u&amp;action=tail\">"._("tail")."</a>]".
918                      "</td><td bgcolor=\"#CCCCCC\" align=\"right\">".
919                      "$s</td><td bgcolor=\"#CCCCCC\">$t</td></tr>\n";
920         }
921         echo "</table></div>\n";
922
923         $backarr = "&lt;&lt;&lt;&nbsp;";
924         $back = _("Page back");
925         $forward = _("Page forward");
926         $forwardarr = "&nbsp;&gt;&gt;&gt;";
927
928 // FIXME
929 /*
930         echo "<p><table width=\"90%\" align=\"center\"><tr><td align=left width=1%>";
931
932         if ($off > 0) {
933                 $noff = $off - $cnt;
934                 if ($noff < 0)  
935                         $noff = 0;
936                 $hrefurl = "<a href=\"$big_url&amp;off=$noff\">";
937                 echo "$hrefurl$backarr</a></td><td align=left>$hrefurl$back</a>";
938         } else {
939                 echo "$backarr</td><td align=left>$back";
940         }
941
942     echo "</td>\n<td align=\"center\">";
943     echo "</td>\n<td align=\"right\">";
944
945     if ($off + $cnt < count($list))
946     {
947       $noff = $off + $cnt;
948       if ($noff < 0)    
949         $noff = 0;
950       $hrefurl = "<a href=\"$big_url&amp;off=$noff\">";
951       echo "$hrefurl$forward</a></td><td align=\"right\" width=\"1%\">$hrefurl$forwardarr</a>";
952     }
953     else
954     {
955       echo "$forward</td><td align=\"right\" width=\"1%\">$forwardarr";
956     }
957
958     echo "</td>\n</tr></table></p>";
959 */
960     }
961     if ($local == 0)
962     {
963       ftp_quit($ftp_conn);
964       $ftp_conn = 0;
965     }
966   } else
967   {
968     echo _("Enter something!");
969   }
970   echo "</form>\n";
971 }
972
973 function welcome()
974 {
975 ?>
976 <table border="0" width="100%"><tr><td width="20%">&nbsp;</td><td>
977 <h1><?=_("Welcome!")?></h1>
978 <p><?=_("Welcome to PLD Build Logs WWW interface.")?></p><p>
979 <?=_("Feel free to email bug reports, complaints and feature requests ")?>
980 <!-- ech... niech strace... -->
981 <a href="mailto:feedback@pld-linux.org"><?=_("to us")?></a>. <?=_("Positive opinions are also")?> 
982 <a href="mailto:feedback@pld-linux.org"><?=_("welcome")?></a> ;)</p>
983 <p>Version: $Id: index.php,v 1.81 2005/09/04 12:34:28 arekm Exp $</p>
984 </td><td width="20%">&nbsp;</td></tr>
985 </table>
986 <?php
987 }
988
989 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
990 header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
991 header("Cache-Control: no-cache, must-revalidate");
992 header("Pragma: no-cache");
993
994 //phpinfo();
995 if ($local) {
996         if ($action == "text") {
997                 dump_text();
998         } else if ($action == "adv_search") {
999                 myheader();
1000                 adv_search();
1001                 trailer();
1002         } else if ($action == "qatxt") {
1003                 dump_qa(1);
1004         } else {
1005                 myheader();
1006                 echo "<table cellpadding=\"10\" width=\"100%\"><tr><td valign=\"top\" width=\"10%\">";
1007                 list_archs();
1008                 echo "</td><td valign=\"top\">";
1009                 flush();
1010                 if ($action == "qa")
1011                         dump_qa(0);
1012                 else if ($action == "sqa")
1013                         search_qa();
1014                 else if (isset($id))
1015                         dump_log($action == "tail");
1016                 else if (isset($idx))
1017                         list_logs();
1018                 else 
1019                         welcome();
1020                 echo "</td></tr></table>";
1021                 trailer();
1022         }
1023 }
1024 else {
1025
1026         if ($action == "text") {
1027                 dump_text();
1028         } else if ($action == "qatxt") {
1029                 dump_qa(1);
1030         } else {
1031                 myheader();
1032                 echo "<table cellpadding=\"10\" width=\"100%\"><tr><td valign=top width=\"10%\">";
1033                 list_archs();
1034                 echo "</td><td valign=\"top\">";
1035                 flush();
1036                 if ($action == "qa")
1037                         dump_qa(0);
1038                 else if (isset($id))
1039                         dump_log($action == "tail");
1040                 else if (isset($idx))
1041                         list_logs();
1042                 else 
1043                         welcome();
1044                 echo "</td></tr></table>";
1045                 trailer();
1046         }
1047 }
1048 ?>
This page took 0.22081 seconds and 4 git commands to generate.