diff options
Diffstat (limited to 'buildmaster/log.php')
-rw-r--r-- | buildmaster/log.php | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/buildmaster/log.php b/buildmaster/log.php new file mode 100644 index 0000000..911a52a --- /dev/null +++ b/buildmaster/log.php @@ -0,0 +1,85 @@ +<?php + + include "lib/mysql.php"; + + if (isset($_GET["show"]) && + ($_GET["show"] == "ssh")) { + $to_show = "ssh"; + $columns = array( + "date" => "`ssh_log`.`date`", + "build slave" => "`build_slaves`.`name`", + "action" => "`ssh_log`.`action`", + "parameters" => "`ssh_log`.`parameters`" + ); + $join = " LEFT JOIN `build_slaves` ON `ssh_log`.`build_slave`=`build_slaves`.`id`"; + } else { + $to_show = "email"; + $columns = array( + "date" => "`email_log`.`date`", + "action" => "`email_actions`.`name`", + "count" => "`email_log`.`count`", + "success" => "`email_log`.`success`", + "person" => "`persons`.`name`", + "comment" => "`email_log`.`comment`" + ); + $join = + " LEFT JOIN `email_actions` ON `email_log`.`action`=`email_actions`.`id`" . + " LEFT JOIN (`gpg_keys`" . + " JOIN `persons` ON `gpg_keys`.`owner`=`persons`.`id`" . + ") ON `email_log`.`gpg_key`=`gpg_keys`.`id`"; + } + + if (isset($_GET["from"])) + $min_time = $_GET["from"]; + elseif ($to_show == "email") + $min_time = "1 00:00:00"; + else + $min_time = "00:42:00"; + + $query = "SELECT "; + foreach ($columns as $name => $column) + $query .= $column . " AS `".$name."`,"; + + $query = substr($query,0,-1); + $query .= " FROM `" . $to_show . "_log`" . $join . + " WHERE TIMEDIFF((" . + // NOW() is wrong here - due to differing time zones O.o + "SELECT MAX(`l`.`date`) FROM `" . $to_show . "_log` AS `l`" . + "),`" . $to_show . "_log`.`date`) < from_base64(\"" . base64_encode( $min_time ) . "\")" . + " ORDER BY `" . $to_show . "_log`.`date` DESC"; + + $result = mysql_run_query($query); + +?> +<html> + <head> + <title><?php print $to_show; ?>-log</title> + <link rel="stylesheet" type="text/css" href="/static/style.css"> + </head> + <body> + <table> + <tr> +<?php + foreach ($columns as $label => $column) { + print " <th>\n"; + print " " . $label . "\n"; + print " </th>\n"; + } +?> + </tr> +<?php + + while ($row = $result -> fetch_assoc()) { + print " <tr>\n"; + foreach ($row as $val) { + print " <td>\n"; + print " " . $val . "\n"; + print " </td>\n"; + } + print " </tr>\n"; + } + +?> + </table> + </body> +</html> |