} else
$commit['text'] = substr($rev_line, 4);
} else {
- $opt = explode(" ", $rev_line);
+ $opt = explode(" ", $rev_line, 2);
if($opt[0] == "tree") {
$commit['tree'] = $opt[1];
} else if($opt[0] == "parent") {
$commit['parent'][] = $opt[1];
} else if($opt[0] == "author") {
- $commit['author'] = $opt[1];
- $commit['author_mail'] = $opt[2];
- $commit['author_time'] = $opt[3];
+ preg_match('/(.*) <([^>]*)> ([0-9]*) ([+\-0-9]{5})/i', $opt[1], $matches);
+ $commit['author'] = $matches[1];
+ $commit['author_mail'] = $matches[2];
+ $commit['author_time'] = $matches[3];
+ $commit['author_timezone'] = $matches[4];
} else if($opt[0] == "committer") {
- $commit['committer'] = $opt[1];
- $commit['committer_mail'] = $opt[2];
- $commit['committer_time'] = $this->get_age($opt[3]);
+ preg_match('/(.*) <([^>]*)> ([0-9]*) ([+\-0-9]{5})/i', $opt[1], $matches);
+ $commit['committer'] = $matches[1];
+ $commit['committer_mail'] = $matches[2];
+ $commit['committer_time'] = $matches[3];
+ $commit['committer_timezone'] = $matches[4];
}
}
}
/**
* get commit age
*
- * @param string $age
+ * @param string $last_change
* @raturn string
*/
- public function get_age($age) {
- $age= time() - $age;
+ public function get_age ($last_change) {
+ $now = time();
+ $age = ($last_change > 0 ? ($now - $last_change) : 0);
+
if ($age > 60*60*24*365*2) {
$age_str = floor($age/60/60/24/365);
$age_str .= " years ago";
} else if ($age > 2) {
$age_str = $age;
$age_str .= " sec ago";
+ } else if ($age >= 0) {
+ $age_str = "right now";
} else {
$age_str = "right now";
}
return $age_str;
}
+ /*
+ * get css class from age
+ *
+ * @param string $last_change
+ * @return string
+ */
+ public function get_age_class ($last_change) {
+ $now = time();
+ $age = ($last_change > 0 ? ($now - $last_change) : 0);
+
+ if($age == 0) {
+ $age_class = "noage";
+ } else if ($age < 60*60*2) {
+ $age_class = "age0";
+ } else if ($age < 60*60*24*2) {
+ $age_class = "age1";
+ } else {
+ $age_class = "age2";
+ }
+ return $age_class;
+ }
+
/**
* get repo list from projects.list file
*