Note: put this in a cron job as it may take a while to run. Use the output to generate a basic html page instead.
stats.php
<?php
date_default_timezone_set("EST");
$dta = date(DATE_RFC822);
$dis = "dist-f15";
$hua = "http://arm.koji.fedoraproject.org/kojihub";
$hub = "http://koji.fedoraproject.org/kojihub";
function p($n)
{
preg_match("/^(.*)-([^-]+)-([^-]+)$/", $n, $m);
return $m;
}
$a = array();
exec("/usr/bin/koji -s '".$hua."' list-tagged '".$dis."' --latest --quiet | /bin/awk '{ print $1 }'", $a);
$b = array();
exec("/usr/bin/koji -s '".$hub."' list-tagged '".$dis."' --latest --quiet | /bin/awk '{ print $1 }'", $b);
$err = array(); $unb = array(); $dif = array(); $wor = array(); $fin = array();
$t = array();
foreach ($a as $i)
{
$n = p($i);
array_push($t, $n[1]);
}
$u = array();
foreach ($b as $i)
{
$n = p($i);
$c = array_search($n[1], $t);
if ($c === FALSE)
{
array_push($u, $i);
}
else if ($a[$c] != $i)
{
array_push($dif, array($a[$c], $i));
}
else if ($a[$c] == $i)
{
array_push($fin, $i);
}
}
$c = 0; $s = ""; $l = count($u); $v = array();
for ($x = 0; $x < $l; $x += 1)
{
$s = ($s."'".$u[$x]."' ");
$c = ($c + 1);
if (($c >= 256) or ($x == ($l - 1)))
{
exec("/usr/bin/koji -s '".$hua."' buildinfo ".$s." | /bin/grep -Ei '^(genericerror|no such build|build|state): .*$'", $v);
$c = 0; $s = "";
}
}
array_push($v, "");
$b = ""; $s = "";
foreach ($v as $i)
{
$m = array(); $n = array();
if (preg_match("/^state: (.*)$/i", $i, $m))
{
$s = trim($m[1]);
}
else if (preg_match("/^.*: ([^ ]*).*$/i", $i, $n) or ($b != ""))
{
if ($b != "")
{
if ($s == "COMPLETE")
{
array_push($fin, $b);
}
else if ($s == "BUILDING")
{
array_push($wor, $b);
}
else if ($s == "")
{
array_push($unb, $b);
}
else
{
array_push($err, $b);
}
}
$b = trim($n[1]); $s = "";
}
}
$dtb = date(DATE_RFC822);
?>
<html>
<head>
<title>Koji Stats Page</title>
<style>
a
{
color: black;
text-decoration: none;
}
table
{
width: 95%;
}
.errb
{
background-color: #FF6A6A;
}
.unbb
{
background-color: #FFA812;
}
.difb
{
background-color: #FFD700;
}
.work
{
background-color: #33FF33;
}
.buib
{
background-color: #499DF5;
}
.head
{
text-align: left;
width: 95%;
display: none;
}
.butt
{
border: 1px solid black;
padding-left: 10px;
padding-right: 10px;
}
.list
{
border: 1px dotted black;
text-align: left;
padding-top: 10px;
padding-left: 10px;
width: 95%;
height: 512px;
overflow: auto;
}
</style>
<script>
function show(name)
{
var x, objc;
var elem = ["erro", "unbu", "diff", "work", "buil"];
for (x = 0; x < elem.length; ++x)
{
objc = document.getElementById(elem[x]);
objc.style.display = "none";
}
for (x = 0; x < elem.length; ++x)
{
if (name == elem[x])
{
objc = document.getElementById(elem[x]);
objc.style.display = "block";
}
}
}
function init()
{
var objc = document.getElementById("head");
objc.style.display = "block";
}
</script>
</head>
<body onload="init();">
<b><?php print($dis." / ".$dta." / ".$dtb); ?></b>
<br /><br />
<center>
<div id="head" class="head">
<span class="butt errb"><a href="javascript:show('erro');">Errors [<?php echo count($err); ?>]</a></span>
<span class="butt unbb"><a href="javascript:show('unbu');">Unbuilt [<?php echo count($unb); ?>]</a></span>
<span class="butt difb"><a href="javascript:show('diff');">Different [<?php echo count($dif); ?>]</a></span>
<span class="butt work"><a href="javascript:show('work');">Working [<?php echo count($wor); ?>]</a></span>
<span class="butt buib"><a href="javascript:show('buil');">Built [<?php echo count($fin); ?>]</a></span>
</div>
<br />
<div id="erro" class="list"><center><table>
<?php foreach ($err as $i) { print("<tr><td class='butt errb'><a href=\"javascript:logs('".$i."');\">".$i."</a></td></tr>\n"); } ?>
</table></center></div>
<div id="unbu" class="list" style="display: none"><center><table>
<?php foreach ($unb as $i) { print("<tr><td class='butt unbb'><a href=\"javascript:logs('".$i."');\">".$i."</a></td></tr>\n"); } ?>
</table></center></div>
<div id="diff" class="list" style="display: none"><center><table>
<?php foreach ($dif as $i) { print("<tr><td class='butt difb'><a href=\"javascript:logs('".$i[0]."');\">".$i[0]." [".$i[1]."]</a></span></td></tr>\n"); } ?>
</table></center></div>
<div id="work" class="list" style="display: none"><center><table>
<?php foreach ($wor as $i) { print("<tr><td class='butt work'><a href=\"javascript:logs('".$i."');\">".$i."</a></td></tr>\n"); } ?>
</table></center></div>
<div id="buil" class="list" style="display: none"><center><table>
<?php foreach ($fin as $i) { print("<tr><td class='butt buib'><a href=\"javascript:logs('".$i."');\">".$i."</a></td></tr>\n"); } ?>
</table></center></div>
</center>
</body>
</html>


