function listFilesInDirectory($directory, $prefix = '') { $directory = rtrim($directory, '\\/'); $files = array(); foreach (scandir($directory) as $file) { if ($file !== '.' and $file !== '..') { if (is_dir("{$directory}/{$file}")) { $files = array_merge($files, listFilesInDirectory("{$directory}/{$file}", "{$prefix}{$file}/")); } else { $files[] = $prefix . $file; } } } return $files; }
/** * Returns all layers found in all mapfiles of a directory * * $directory [string] : directory path */ public function parseDirectory($directory) { $files = listFilesInDirectory($directory); $layers = array(); foreach ($files as $file) { if (substr($file, -4) == '.map') { //create a map object try { $oMap = new MapObj("{$directory}/{$file}"); } catch (Exception $e) { $error = ms_getErrorObj(); throw new Exception($error->message); exit; } $map = new Map($oMap); $layers = array_merge($layers, $map->parseLayers()); } } return $this->formatParsingOutput($layers); }
function cc_showBuild($project, $log, $file) { global $buildlogs; global $additionalfiles; $buildInfo = new cc_LogParser(); $buildInfo->parseFile("{$buildlogs}/{$project}/{$log}"); ?> <p> <span class="header-title"><?php print $project; ?> - <?php if ($buildnum = cc_getLabelOfLogFile($log)) { print "BUILD COMPLETE - build." . $buildnum; } else { print "<span class=\"header-title-error\">FAILED!</span>"; } ?> </span><br/> <span class="header-data"><span class="header-label">Date of build:</span> <?php print cc_getDateOfLogFile($log); ?> </span><br/> <span class="header-data"><span class="header-label">Time to build:</span> <?php print $buildInfo->compileTime; ?> </span><br/> <span class="header-data"><span class="header-label">Additional Files:</span></span><br/> <?php println("<span class=\"header-data\">"); $builddate = substr($log, 3, 14); $additionalfiles = listFilesInDirectory("{$buildlogs}/{$project}/{$builddate}"); if (!isset($additionalfiles)) { print " <i>No additional files.</i>"; } else { println("<ul>"); foreach ($additionalfiles as $additionalfile) { println("<li><a class=\"link\" href=\"viewfile.php?project={$project}&log={$log}&file={$additionalfile}\">{$additionalfile}</a></li>"); } println("</ul>"); } println("</span>"); ?> </p> <table cellspacing="0" cellpadding="2"> <tr><td colspan="5" class="table-sectionheader">Modifications since last build: (<?php print count($buildInfo->modifications); ?> )</td></tr> <?php if (count($buildInfo->modifications) > 0) { ?> <tr> <th align="left" class="table-title">User</th> <th align="left" class="table-title">Type of Change</th> <th align="left" class="table-title">File Name</th> <th align="left" class="table-title">Date</th> <th align="left" class="table-title">Commit Message</th> </tr> <?php } else { ?> <tr> <th class="table-title">None</th> </tr> <?php } $i = 0; foreach ($buildInfo->modifications as $modification) { if ($i & 1) { print "\t\t\t\t<tr class=\"table-oddrow\">"; } else { print "\t\t\t\t<tr class=\"table-evenrow\">"; } print "<td class=\"table-text\">{$modification->user}</td>"; print "<td class=\"table-text\">{$modification->action}</td>"; print "<td class=\"table-text\">{$modification->filename}, {$modification->revision}</td>"; print "<td class=\"table-text\">{$modification->date}</td>"; print "<td class=\"table-text\">{$modification->comment}</td>"; println("</tr>"); $i++; } ?> </table> <br/> <table cellspacing="0" cellpadding="2"> <tr><td class="table-sectionheader">Compile Messages:</td></tr> <?php if ($buildInfo->compileError != "") { print "<tr><td class=\"table-text-error\">{$buildInfo->compileError}</td></tr>"; } ?> <tr><td class="table-text"><pre> <?php $haveOutput = false; foreach ($buildInfo->compileMessages as $compileMessage) { if ($compileMessage->priority != "debug") { if ($compileMessage->priority != "info") { print "{$compileMessage->message}\n"; $haveOutput = true; } } } if (!$haveOutput) { print "(None)"; } ?> </pre></td></tr> </table> <br/> <?php if (count($buildInfo->testsuites) > 0) { ?> <table cellspacing="0" cellpadding="2"> <tr><td colspan="5" class="table-sectionheader">Test Results:</td></tr> <tr> <th align="left" class="table-title">Name</th> <th align="left" class="table-title">Tests</th> <th align="left" class="table-title">Errors</th> <th align="left" class="table-title">Failures</th> <th align="left" class="table-title">Time (s)</th> </tr> <?php foreach ($buildInfo->testsuites as $testSuite) { print "<tr>"; print "<td class=\"table-text\"><b>{$testSuite->name}</b></td>"; print "<td class=\"table-text\">{$testSuite->tests}</td>"; print "<td class=\"table-text\">{$testSuite->errors}</td>"; print "<td class=\"table-text\">{$testSuite->failures}</td>"; print "<td class=\"table-text\">{$testSuite->time}</td>"; println("</tr>"); $i = 0; foreach ($testSuite->testcases as $testCase) { if ($i & 1) { print "\t\t\t\t<tr class=\"table-oddrow\">"; } else { print "\t\t\t\t<tr class=\"table-evenrow\">"; } print "<td colspan=\"4\" class=\"table-text\">{$testCase->name}"; if ($testCase->errors) { print " <span class=\"table-text-error\">(ERROR!)</span>"; } else { if ($testCase->failures) { print " <span class=\"table-text-failure\">(FAILURE!)</span>"; } else { print " <span class=\"table-text-success\">(PASSED!)</span>"; } } print "</td>"; print "<td class=\"table-text\">{$testCase->time}</td>"; println("</tr>"); $i++; } print "<tr><td colspan=\"5\"> </td></tr>"; } ?> </table> <?php } }
function cc_getListOfBuilds($project) { global $buildlogs; $builds = array(); $files = listFilesInDirectory("{$buildlogs}/{$project}"); if (is_null($files)) { return; } foreach ($files as $file) { if ($file == "_cache" || $file == "status" || !cc_isValidLogFilename($file)) { continue; } $builds[] = $file; } if (count($builds) <= 0) { return; } rsort($builds); return $builds; }