From e69f53b777822e24c1fbf987814457786ba356c7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= Date: Sun, 12 Oct 2014 21:27:06 +0000 Subject: [PATCH] Tail more is no more 100 last lines. It is not 'from the first error until the end'. Catch 'undefined reference to' errors. --- index.php | 48 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/index.php b/index.php index 0669f98..e469582 100644 --- a/index.php +++ b/index.php @@ -350,51 +350,67 @@ function dump_log($tail) } $cmd = "$filter '$root_directory/$f'"; - if ($tail) - $cmd = "$cmd | tail -n 100"; $fd = popen($cmd, "r"); $toc = array(); - ob_start(); + $err = array(); $err_count = 0; $time = ""; + $out_buf = array(); while (($s = fgets($fd, 102400)) != false) { if (strlen($s) > 800) { $s = chunk_split($s, 800, "\n "); $s = trim($s); } + + $toc_elem = false; + $err_elem = false; + $s = htmlspecialchars($s); // highlight errors if (preg_match("/(?:fail|error(s|\sCS\d+)?):/i", $s)) { $err_count++; - $toc[] = "error $err_count"; - $err[] = $s; + $toc_elem = "error $err_count"; + $err_elem = $s; + $s = "$s"; + } elseif (preg_match("/(?:undefined reference to)/i", $s)) { + $err_count++; + $toc_elem = "error $err_count"; + $err_elem = $s; $s = "$s"; } elseif (preg_match("#^\+ /usr/bin/make\b.*\b(?Pcheck)\b#", $s, $m)) { // rpm build section - $toc[] = "make {$m['target']}"; - $err[] = $s; + $toc_elem = "make {$m['target']}"; + $err_elem = $s; $s = "$s"; } elseif (substr($s, 0, 2) == "+ ") { // shell verbose $s = "$s"; } elseif (preg_match("/^Executing\(%(?P
\w+)\)/", $s, $m)) { // rpm build section - $toc[] = $m['section']; - $err[] = $s; + $toc_elem = $m['section']; + $err_elem = $s; $s = "$s"; } elseif (preg_match("/^Processing files: (?P(?P.+)-[^-]+-[^-]+)/", $s, $m)) { // processing files - $toc[] = "files ".$m['name']; - $err[] = $s; + $toc_elem = "files ".$m['name']; + $err_elem = $s; $s = "$s"; } elseif (preg_match("/^ended at: (?P.+), done in (?P