| <?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"; |
| } |
| |
| ?> |