ANSI-Heatmap
view release on metacpan or search on metacpan
examples/git.pl view on Meta::CPAN
my $LIMIT = 20;
my $PER_ROW = 4;
my $i;
my %day2idx = map { $_ => $i++ } qw(Mon Tue Wed Thu Fri Sat Sun);
my %map;
my %commit_count;
my $repo = shift or die "usage: $0 /path/to/git-repo";
chdir $repo;
open my $log, '-|', 'git', 'log', '--no-merges', '--remove-empty', "--format=%cN\t%cD";
while (<$log>) {
/\A([^\t]+)\t(\w+), \d+ \w+ \d+ (\d+):\d+:\d+ [-+]\d+\Z/ or die "invalid line '$_'";
my ($name, $day, $hour) = ($1, $2, $3);
$day = $day2idx{$day}; defined $day or die "Invalid day";
$commit_count{$name}++;
if (!$map{$name}) {
$map{$name} = ANSI::Heatmap->new(
min_x => 0,
max_x => 23,
min_y => 0,
( run in 0.480 second using v1.01-cache-2.11-cpan-49f99fa48dc )