blob: 2cd209b7cc475379199e367f3f5df7bac503d20d [file] [log] [blame]
<?php
function get_stats_file($build) {
$dir = "/home/data/httpd/writable/henshin";
if (!file_exists($dir)) {
mkdir($dir);
}
return "$dir/download-stats-$build.txt";
}
function get_month_key() {
return date('Y-m');
}
function load_stats($build) {
$stats = array();
$file = get_stats_file($build);
if (file_exists($file)) {
$f = fopen($file, 'r');
while (!feof($f)) {
$line = fgets($f);
$arr = explode(':',$line);
if (count($arr)>1) {
$stats[$arr[0]] = $arr[1];
}
}
fclose($f);
} else {
$reset = "Reset to initial values.";
if (!reset_stats($build)) {
$reset = "Cannot reset stats file!";
}
mail("henshin.ck@gmail.com",
"Error loading Henshin download stats",
"Cannot find $file.\n$reset");
}
return $stats;
}
function reset_stats($build) {
$init = "init-$build.txt";
$file = get_stats_file($build);
return copy($init, $file);
}
function save_stats($build, $stats) {
$file = get_stats_file($build);
$f = fopen($file, 'w');
if ($f!=FALSE) {
foreach ($stats as $month=>$count) {
fwrite($f, "$month:$count\n");
}
fclose($f);
} else {
mail("henshin.ck@gmail.com",
"Error saving Henshin download stats",
"Cannot write to file $file");
}
}
function update_stats($build) {
$stats = load_stats($build);
$month = get_month_key();
if (!isset($stats[$month])) {
$stats[$month] = 1;
} else {
$stats[$month] = $stats[$month]+1;
}
save_stats($build, $stats);
mail("henshin.ck@gmail.com",
"Henshin download notification",
"See http://www.eclipse.org/modeling/emft/henshin/stats/info.php");
return $stats;
}
function print_stats($build) {
$stats = load_stats($build);
echo "<table border=\"1\">\n";
echo "<tr><th>Month</th><th>Count</th></tr>\n";
foreach ($stats as $month=>$count) {
echo "<tr><td>$month</td><td>$count</td></tr>\n";
}
echo "</table>\n";
}
?>