summaryrefslogtreecommitdiffstats
path: root/index.php
diff options
context:
space:
mode:
authorRomain d'Alverny <rda@mageia.org>2011-01-14 15:49:38 +0000
committerRomain d'Alverny <rda@mageia.org>2011-01-14 15:49:38 +0000
commitc4afce84de7482dde5c29f6cacdd14196672433c (patch)
tree2f920ac782e41a8e29ca4b9fd33b536c8aeb8ea9 /index.php
parent2d752cee9249a0ec1a953f674bcee633dda8acd4 (diff)
downloadpkgsubmit-c4afce84de7482dde5c29f6cacdd14196672433c.tar
pkgsubmit-c4afce84de7482dde5c29f6cacdd14196672433c.tar.gz
pkgsubmit-c4afce84de7482dde5c29f6cacdd14196672433c.tar.bz2
pkgsubmit-c4afce84de7482dde5c29f6cacdd14196672433c.tar.xz
pkgsubmit-c4afce84de7482dde5c29f6cacdd14196672433c.zip
show package build time
Diffstat (limited to 'index.php')
-rw-r--r--index.php48
1 files changed, 35 insertions, 13 deletions
diff --git a/index.php b/index.php
index ac646d9..9dd9efe 100644
--- a/index.php
+++ b/index.php
@@ -46,9 +46,12 @@ shell_exec('grep -v mga src.txt > src.mdv.txt');
chdir($upload_dir);
-$all_files = shell_exec("find \( -name '*.rpm' -o -name '*.src.rpm.info' -o -name '*.youri' -o -name '*.lock' -o -name '*.done' \) -ctime -$max_modified");
-
-preg_match_all("!^\./(\w+)/((\w+)/(\w+)/(\w+)/(\d+)\.(\w+)\.(\w+)\.(\d+))_?(.+)(\.src\.rpm(?:\.info)?|\.youri|\.lock|\.done)$!m", $all_files, $matches, PREG_SET_ORDER);
+$all_files = shell_exec("find \( -name '*.rpm' -o -name '*.src.rpm.info' -o -name '*.youri' -o -name '*.lock' -o -name '*.done' \) ! -ctime $max_modified -printf \"%p\t%T@\"");
+$re = "!^\./(\w+)/((\w+)/(\w+)/(\w+)/(\d+)\.(\w+)\.(\w+)\.(\d+))_?(.+)(\.src\.rpm(?:\.info)?|\.youri|\.lock|\.done)\s+(\d+\.\d+)$!m";
+$r = preg_match_all($re,
+ $all_files,
+ $matches,
+ PREG_SET_ORDER);
$pkgs = array();
foreach ($matches as $val) {
@@ -85,6 +88,10 @@ foreach ($matches as $val) {
} else if ($ext == '.lock') {
// parse build bot from $data
$pkgs[$key]['status']['build'] = 1;
+ } else if ($ext == '.done') {
+ $pkgs[$key]['buildtime']['start'] = strtotime($val[6]);
+ $pkgs[$key]['buildtime']['end'] = round($val[12]);
+ $pkgs[$key]['buildtime']['diff'] = $pkgs[$key]['buildtime']['end'] - $pkgs[$key]['buildtime']['start'];
}
}
// sort by key in reverse order to have more recent pkgs first
@@ -126,26 +133,38 @@ function plural($num) {
}
/**
- * @param string $key
+ * Return human-readable time difference:
+ * - against $key (YmdHis expected format)
+ * - using only $diff (takes precedence over $key if provided)
+ *
+ * @param string $key past date to diff against from now
+ * @param integer $diff time difference in seconds
*
* @return string
*/
-function key2date($key) {
- global $tz;
- $date = DateTime::createFromFormat("YmdHis", $key+0, $tz);
- $diff = time() - $date->getTimestamp();
+function key2date($key, $diff = null) {
+ global $tz;
+
+ if (is_null($diff) || $diff <= 0) {
+ $date = DateTime::createFromFormat("YmdHis", $key+0, $tz);
+ if ($date <= 0)
+ return null;
+
+ $diff = time() - $date->getTimestamp();
+ }
if ($diff<60)
- return $diff . " second" . plural($diff) . " ago";
+ return $diff . " second" . plural($diff);
$diff = round($diff/60);
if ($diff<60)
- return $diff . " minute" . plural($diff) . " ago";
+ return $diff . " minute" . plural($diff);
$diff = round($diff/60);
if ($diff<24)
- return $diff . " hour" . plural($diff) . " ago";
+ return $diff . " hour" . plural($diff);
$diff = round($diff/24);
- return $diff . " day" . plural($diff) . " ago";
+ return $diff . " day" . plural($diff);
}
+
?>
<!DOCTYPE html>
<html lang="en">
@@ -256,7 +275,7 @@ if ($total > 0) {
$s .= sprintf($tmpl,
$p['type'],
- key2date($key),
+ key2date($key) . ' ago',
$p['user'], $p['user'],
$p['package'],
$p['version'],
@@ -275,6 +294,9 @@ if ($total > 0) {
sprintf('<a href="%s">%s</a>', $typelink, $p['type']) :
$p['type'];
+ $s .= '</td><td>';
+ if ($p['type'] == 'uploaded')
+ $s .= duration_to_diff($p['buildtime']['diff']);
$s .= '</td>';
//$s .= '<td>' . sprintf($badges[$p['type']], $p['user']) . '</td>';
$s .= '</tr>';