Svn-results.pl

From Organic Design wiki
Revision as of 21:55, 16 May 2008 by Nad (talk | contribs) (better date handling)
  1. !/usr/bin/perl
  2. Generate report of number of SVN committers by month
  3. Our Perl scripts.

use Date::Format; use Date::Parse;

$csv = '/var/www/svn-report.txt'; %data = ();

open CSV,'<',$csv; while (<CSV>) { ($revision,$date,$user,$core) = split ','; if ($date =~ /... (...) .. ..:..:.. (....)/ && $user) { $data{time2str('%Y/%m',str2time("1 $1 $2"))}{$user}{0+$core}++; $data{time2str('%Y',str2time("1 $1 $2"))}{$user}{0+$core}++; } } close CSV;

print "$revision revisions read into hash\n";

for $date (sort { $a cmp $b } keys %data) {

@users = keys %{ $data{$date} }; $n = 1+$#users; $ncore = 0; $t = 0; $tcore = 0; for (@users) { if ($c = $data{$date}{$_}{1}) { $ncore++; $tcore += $c; } $t += $c + $data{$date}{$_}{0}; } if ($date =~ /^....$/) { print "\n|-\n|$date||$n||$ncore||$t||$tcore\n"; } else { $date = time2str('%B',str2time("$date/01")); print "|-\n|$date||$n||$ncore||$t||$tcore\n"; } }