3 require_once 'common.inc.php';
4 require_once 'package.inc.php';
6 function filter_pkg($pkg)
8 global $requiredarchs, $sufficientarchs;
10 // Check if it's a queue package
11 if (!(count ($pkg->done
) or count ($pkg->excluded
)) and !count($pkg->builds
)) {
15 if (count($pkg->failed
)) {
19 $pkgarch = array_merge (
20 array_keys ($pkg->done
),
21 array_keys ($pkg->failed
),
24 foreach ($sufficientarchs as $arch) {
25 if (in_array ($arch, $pkgarch)) {
28 elseif (array_key_exists ($arch, $pkg->builds
)) {
29 /* Building a sufficient arch */
34 foreach ($requiredarchs as $arch) {
35 if (in_array ($arch, $pkgarch)) {
39 if ($hit == count ($requiredarchs)) {
46 function parse_pkg($archs, $pkg)
49 $pkgentry[] = $pkg->pkgname
;
50 $pkgentry[] = $pkg->version
;
51 $pkgentry[] = $pkg->commit
;
52 $pkgentry[] = $pkg->distro
;
53 $pkgentry[] = $pkg->repository
;
54 $pkgentry[] = $pkg->submitter
;
55 $pkgentry[] = substr ($pkg->id
, 0, 14);
56 $pkgentry[] = $pkg->id
;
57 foreach ($archs as $arch) {
58 if (array_key_exists ($arch, $pkg->done
)) {
59 $pkgentry[] = "<font color=\"green\">Done</font>";
61 elseif (array_key_exists ($arch, $pkg->failed
)) {
62 $pkgentry[] = "<font color=\"red\">Failed</font>";
64 elseif (in_array ($arch, $pkg->excluded
)) {
65 $pkgentry[] = "<font color=\"darkyellow\">Excluded</font>";
67 elseif (array_key_exists ($arch, $pkg->builds
)) {
68 $pkgentry[] = "<font color=\"blue\">Building/".$pkg->builds
[$arch][0]."</font>";
71 $pkgentry[] = "Pending";
78 function parse_build()
80 global $requiredarchs;
82 list ($idlist, $infolist) = list_info_files();
83 $idlist = array_reverse ($idlist);
86 $archs = $requiredarchs;
87 foreach ($idlist as $id) {
88 $pkg = new Package($id, True, $infolist[$id]);
89 if (filter_pkg ($pkg)) {
91 $archs = array_merge (
93 array_keys ($pkg->done
),
94 array_keys ($pkg->failed
),
95 array_keys ($pkg->builds
)
99 $archs = array_unique ($archs);
103 foreach ($pkglist as $pkg) {
104 $pkgentry = parse_pkg($archs, $pkg);
108 $table[] = $pkgentry;
111 return array ($archs, $table);
114 function make_build_table ($build, $archs)
116 $now = date('YmdHis');
120 <table cellspacing=8>
130 foreach ($archs as $arch) {
131 $table .= " <th>$arch</th>\n";
135 foreach ($build as $line) {
138 // if ($now - $pkg->id > 80000) {
139 // $table .= "style='background-color: darkred;'";
142 $table .= "class='even'";
145 $table .= "class='odd'";
149 <td><a href=\"package.php?key=${line[7]}\">${line[0]}</a></td>
150 <td align='right'>${line[1]}</td>";
152 $table .= " <td><a href=\"http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages?view=rev&revision=${line[2]}\">${line[2]}</a></td>";
155 $table .= " <td>N/A</td>";
157 $table .= " <td>${line[3]}</td>
160 <td><nobr>".delta_time($line[6])."</nobr></td>\n";
169 foreach ($line as $cell) {
170 $table .= " <td>$cell</td>\n";
174 $table .= "</table></center>";
179 page_header("building");
180 list ($archs, $build) = parse_build();
181 $filtered = filter ($build);
182 $buildtable = make_build_table ($filtered, $archs);