| version 1.1, 2002/05/28 09:34:00 |
version 1.2, 2002/05/28 12:33:13 |
|
|
| <?
|
<?
|
|
|
|
| $input_file = "in.txt";
|
//$input_file = 'in.txt';
|
| //$input_file = "php://stdin";
|
$input_file = 'php://stdin';
|
| $output_file = "out.txt";
|
//$output_file = 'out.txt';
|
| //$output_file = "php://stdout";
|
$output_file = 'php://stdout';
|
|
|
|
| $begin_line = "----------------------------------------------";
|
$begin_line = '----------------------------------------------';
|
|
|
|
| function my_array_walk($x) {
|
function my_array_walk($x) {
|
| $ik = array_keys($x);
|
$ik = array_keys($x);
|
| for ($i = 0; $i < sizeof($ik); $i++) {
|
for ($i = 0; $i < sizeof($ik); $i++) {
|
| $jk = array_keys($x[$ik[$i]]);
|
$jk = array_keys($x[$ik[$i]]);
|
| for ($j = 0; $j < sizeof($jk); $j++)
|
for ($j = 0; $j < sizeof($jk); $j++)
|
| if (is_array($x[$ik[$i]][$jk[$j]]))
|
if (is_array($x[$ik[$i]][$jk[$j]])) {
|
| $x[$ik[$i]][$jk[$j]] = array_unique($x[$ik[$i]][$jk[$j]]);
|
$x[$ik[$i]][$jk[$j]] = array_unique($x[$ik[$i]][$jk[$j]]);
|
| |
}
|
| }
|
}
|
| return $x;
|
return $x;
|
| } // my_array_walk($x)
|
} // my_array_walk($x)
|
|
|
| continue;
|
continue;
|
| }
|
}
|
| else {
|
else {
|
| $reports[$j]['log_msg'][] = trim($in[$i]);
|
$reports[$j]['log_msg'][sizeof($reports[$j]['log_msg']) - 1] .=
|
| |
rtrim($in[$i]);
|
| |
//$reports[$j]['log_msg'][0] .= rtrim($in[$i]) . "\n";
|
| }
|
}
|
| }
|
}
|
|
|
|
|
|
|
|
|
| // NAME
|
// NAME
|
| if (ereg("^Update of /home/cvs/(.*)", $in[$i], $regs)) {
|
if (ereg("^Update of /home/cvs/(.*)", $in[$i], $regs)) {
|
| //$reports[$j]['name'] = strtok($regs[1], "/"); // only main directory
|
// only project name
|
| $reports[$j]['name'] = trim($regs[1]);
|
$reports[$j]['name'] = trim(strtok($regs[1], '/'));
|
| |
$reports[$j]['directory'] = trim($regs[1]);
|
| }
|
}
|
|
|
|
| $i++;
|
$i++;
|
|
|
|
|
|
| while ($i < sizeof($reports)) {
|
while ($i < sizeof($reports)) {
|
| unset($a);
|
unset($a);
|
| $a[$reports[$i]['name']] = $reports[$i];
|
$a[$reports[$i]['directory']] = $reports[$i];
|
| $merged = array_merge_recursive($merged, $a);
|
$merged = array_merge_recursive($merged, $a);
|
| $i++;
|
$i++;
|
| }
|
}
|
|
|
|
| //var_dump($reports);
|
//var_dump($reports);
|
| $mu = my_array_walk($merged);
|
$mu = my_array_walk($merged);
|
| var_dump($mu);
|
//var_dump($merged);
|
| |
//var_dump($mu);
|
|
|
|
| $i = 0;
|
$i = 0;
|
| |
$name = '';
|
| $keys = array_keys($mu);
|
$keys = array_keys($mu);
|
| while ($i < sizeof($mu)) {
|
while ($i < sizeof($mu)) {
|
| $k = $keys[$i];
|
$k = $keys[$i];
|
| $m = $mu[$k];
|
$m = $mu[$k];
|
|
|
$new_name = is_array($m['name']) ? join(', ', $m['name']) : $m['name'];
|
| fwrite($out, "$begin_line\n");
|
|
| |
if (strcmp($new_name, $name)) {
|
| |
fwrite($out, '--[ Project ' . $new_name . ' ]--');
|
| |
fwrite($out, str_repeat('-', 70 - strlen($new_name) - 16));
|
| |
fwrite($out, "\n");
|
| |
$name = $new_name;
|
| |
}
|
| |
else {
|
| |
fwrite($out, "----\n");
|
| |
}
|
| |
|
| |
//fwrite($out, "$begin_line\n");
|
| |
|
| |
// Directory
|
| |
fwrite($out, 'Path: ');
|
| |
fwrite($out, is_array($m['directory'])
|
| |
? join(', ', $m['directory'])
|
| |
: $m['directory']);
|
| |
fwrite($out, "/\n");
|
|
|
|
| // DATE
|
// DATE
|
| if (is_array($m['date']))
|
if (is_array($m['date'])) {
|
| fwrite($out, 'Last commit: ' . $m['date'][sizeof($m['date']) - 1] . "\n");
|
fwrite($out, 'Date: ' . $m['date'][sizeof($m['date']) - 1]);
|
|
|
fwrite($out, "\n");
|
| // NAME
|
}
|
| fwrite($out, '' . $k . "\n");
|
|
|
|
|
| // EDITORS
|
// EDITORS
|
| if (is_array($m['users']))
|
if (is_array($m['users']))
|
| fwrite($out, 'Editors: '. implode(', ', $m['users']) . "\n");
|
fwrite($out, 'Users: '. implode(', ', $m['users']) . "\n");
|
|
|
|
| // MODIFIED FILES
|
// MODIFIED FILES
|
| if (is_array($m['added']) || is_array($m['modified']) ||
|
if (is_array($m['added']) || is_array($m['modified']) ||
|
| is_array($m['deleted']))
|
is_array($m['deleted']))
|
| fwrite($out, 'Files: ' . " \n");
|
fwrite($out, "Files:\n");
|
| |
|
| if (is_array($m['added']) && is_array($m['modified']))
|
if (is_array($m['added']) && is_array($m['modified']))
|
| $m['added'] = array_diff($m['added'], $m['modified']);
|
$m['modified'] = array_diff($m['modified'], $m['added']);
|
| |
|
| |
/*
|
| if (is_array($m['modified']) && is_array($m['deleted']))
|
if (is_array($m['modified']) && is_array($m['deleted']))
|
| $m['modified'] = array_diff($m['modified'], $m['deleted']);
|
$m['modified'] = array_diff($m['modified'], $m['deleted']);
|
|
|
*/
|
| |
$indent_str = str_repeat(' ', strlen('Files') + 2);
|
| if (is_array($m['added']))
|
if (is_array($m['added']))
|
| fwrite($out, "\t+ " . implode(",\n\t+ ", $m['added']) . "\n");
|
fwrite($out, "$indent_str+ "
|
| |
. implode("\n$indent_str+ ", $m['added']) . "\n");
|
| if (is_array($m['modified']))
|
if (is_array($m['modified']))
|
| fwrite($out, "\t* " . implode(",\n\t* ", $m['modified']) . "\n");
|
fwrite($out, "$indent_str* "
|
| |
. implode("\n$indent_str* ", $m['modified']) . "\n");
|
| if (is_array($m['deleted']))
|
if (is_array($m['deleted']))
|
| fwrite($out, "\t- " . implode(",\n\t- ", $m['deleted']) . "\n");
|
fwrite($out, "$indent_str- "
|
| |
. implode("\n$indent_str- ", $m['deleted']) . "\n");
|
|
|
|
| |
// LOG MESSAGES
|
| if (is_array($m['log_msg'])) {
|
if (is_array($m['log_msg'])) {
|
| fwrite($out, "Log message:\n");
|
fwrite($out, "Message:\n");
|
| fwrite($out, implode("\n", $m['log_msg']) . "\n");
|
for ($l = 0; $l < count($m['log_msg']); $l++) {
|
| |
if (trim($m['log_msg'][$l]) == '')
|
| |
unset($m['log_msg'][$l]);
|
| |
}
|
| |
|
| |
fwrite($out, ' ' . implode("\n ",
|
| |
str_replace("\n", "\n ", $m['log_msg'])
|
| |
) . "\n");
|
| }
|
}
|
| $i++;
|
$i++;
|
| }
|
}
|