mirror of
https://github.com/moses-smt/mosesdecoder.git
synced 2024-12-29 06:52:34 +03:00
189 lines
3.8 KiB
PHP
189 lines
3.8 KiB
PHP
<?php
|
|
|
|
class StaticData
|
|
{
|
|
const logs_path = "./data/";
|
|
}
|
|
|
|
function get_all_branch_names()
|
|
{
|
|
$branches = array();
|
|
$dir_hdl = opendir(StaticData::logs_path);
|
|
while (($file = readdir($dir_hdl)) !== false) {
|
|
if (($pos = strpos($file, ".revlist")) > 0) {
|
|
array_push($branches, substr($file, 0, $pos));
|
|
}
|
|
}
|
|
return $branches;
|
|
}
|
|
|
|
class Branch
|
|
{
|
|
public function __construct($name)
|
|
{
|
|
$this->name = $name;
|
|
$this->create_revlist_hdl();
|
|
}
|
|
|
|
public function get_next_commit()
|
|
{
|
|
return new Commit( chop( fgets($this->revlist_hdl) ) );
|
|
}
|
|
|
|
public function set_line($line)
|
|
{
|
|
$this->reset();
|
|
$index = 0;
|
|
while ($this->revlist_hdl && $index < $line) {
|
|
fgets($this->revlist_hdl);
|
|
$index++;
|
|
}
|
|
}
|
|
|
|
public function reset()
|
|
{
|
|
fclose($this->revlist_hdl);
|
|
$this->create_revlist_hdl();
|
|
}
|
|
|
|
private function create_revlist_hdl()
|
|
{
|
|
$this->revlist_hdl = fopen(StaticData::logs_path . "/" . $this->name . ".revlist", "r");
|
|
}
|
|
|
|
private $name;
|
|
private $revlist_hdl;
|
|
}
|
|
|
|
class Commit
|
|
{
|
|
public function __construct($name)
|
|
{
|
|
$this->name = $name;
|
|
}
|
|
|
|
public function read_log()
|
|
{
|
|
if (! $this->was_tested()) {
|
|
return;
|
|
}
|
|
|
|
$log_hdl = fopen(StaticData::logs_path . "/" . substr($this->name, 0, 1) . "/" . $this->name . ".log", "r");
|
|
while (($line = fgets($log_hdl)) !== false) {
|
|
if (preg_match('/tests passed/', $line)) {
|
|
$this->passed_percent = substr($line, 0, strpos('%', $line));
|
|
}
|
|
else if (preg_match('/INVESTIGATE THESE FAILED TESTS/', $line)) {
|
|
$this->failed_tests = substr($line, 39);
|
|
}
|
|
else if (! $this->is_ok() && preg_match('/## Status:/', $line)) {
|
|
$this->failed_at = substr($line, 16);
|
|
}
|
|
}
|
|
}
|
|
|
|
public function read_info()
|
|
{
|
|
$info_hdl = fopen(StaticData::logs_path . "/" . substr($this->name, 0, 1) . "/" . $this->name . ".info", "r");
|
|
while (($line = fgets($info_hdl)) !== false) {
|
|
if (preg_match('/Author:/', $line)) {
|
|
$this->author = substr("$line", 7);
|
|
}
|
|
else if (preg_match('/Date:/', $line)) {
|
|
$this->timestamp = substr("$line", 12);
|
|
break;
|
|
}
|
|
}
|
|
while (($line = fgets($info_hdl)) !== false) {
|
|
$this->message .= chop($line);
|
|
}
|
|
$this->message = preg_replace('/\s+/', ' ', $this->message);
|
|
}
|
|
|
|
public function was_tested()
|
|
{
|
|
return file_exists(StaticData::logs_path . "/" . substr($this->name, 0, 1) . "/" . $this->name . ".log");
|
|
}
|
|
|
|
public function is_ok()
|
|
{
|
|
if (! $this->was_tested()) {
|
|
return false;
|
|
} else {
|
|
return file_exists(StaticData::logs_path . "/" . substr($this->name, 0, 1) . "/" . $this->name . ".OK");
|
|
}
|
|
}
|
|
|
|
public function get_status()
|
|
{
|
|
return $this->was_tested()
|
|
? ($this->is_ok() ? "OK" : "Failed: " . $this->get_failed_at()) : "Not tested";
|
|
}
|
|
|
|
public function get_passed_percent()
|
|
{
|
|
return $this->passed_percent;
|
|
}
|
|
|
|
public function get_failed_tests()
|
|
{
|
|
return $this->failed_tests;
|
|
}
|
|
|
|
public function get_failed_at()
|
|
{
|
|
return $this->failed_at;
|
|
}
|
|
|
|
public function get_message()
|
|
{
|
|
return $this->message;
|
|
}
|
|
|
|
public function get_author()
|
|
{
|
|
return $this->author;
|
|
}
|
|
|
|
public function get_timestamp()
|
|
{
|
|
return $this->timestamp;
|
|
}
|
|
|
|
public function get_name()
|
|
{
|
|
return $this->name;
|
|
}
|
|
|
|
public function get_log_file()
|
|
{
|
|
return "show_commit.php?commit_id=$this->name&type=log";
|
|
}
|
|
|
|
public function get_info_file()
|
|
{
|
|
return "show_commit.php?commit_id=$this->name&type=info";
|
|
}
|
|
|
|
private function open_log()
|
|
{
|
|
return fopen($this->get_log_file());
|
|
}
|
|
|
|
private function open_info()
|
|
{
|
|
return fopen($this->get_info_file());
|
|
}
|
|
|
|
private $name;
|
|
private $passed_percent;
|
|
private $failed_tests;
|
|
private $failed_at;
|
|
private $message;
|
|
private $author;
|
|
private $timestamp;
|
|
|
|
}
|
|
|
|
?>
|