Skip to content

Instantly share code, notes, and snippets.

@bonesoul
Created October 11, 2013 10:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bonesoul/6932717 to your computer and use it in GitHub Desktop.
Save bonesoul/6932717 to your computer and use it in GitHub Desktop.
Gource samples
#fetch Gravatars
use strict;
use warnings;
use LWP::Simple;
use Digest::MD5 qw(md5_hex);
use Thread::Pool::Simple;
my $size = 90;
my $output_dir = '.git/avatar';
system("no .git/ directory found in current path\n") unless -d '.git';
mkdir($output_dir) unless -d $output_dir;
open(GITLOG, q/git log --pretty=format:"%ae|%an" |/) or die("failed to read git-log: $!\n");
my %processed_authors;
sub fetch
{
#try and fetch image
my ($name, $email, $author_image_file) = @_;
my $grav_url = "http://www.gravatar.com/avatar/".md5_hex(lc $email)."?d=404&s=".$size;
warn "fetching image for '$name' $email ($grav_url)...\n";
my $rc = getstore($grav_url, $author_image_file);
if($rc != 200) {
unlink($author_image_file);
}
}
my $pool = Thread::Pool::Simple->new(min => 10, max => 20, do => [\&fetch]);
while() {
chomp;
my($email, $author) = split(/\|/, $_);
next if $processed_authors{$author}++;
my $author_image_file = $output_dir . '/' . $author . '.png';
#skip images we have
next if -e $author_image_file;
$pool->add(($author, $email, $author_image_file));
}
$pool->join();
close GITLOG;
E:\dev-software\gource\gource --hide filenames --title "MonoGame Git Visualization" --user-image-dir E:\Source\MonoGame@mono\.git\avatar --logo logo.png --seconds-per-day 0.01 -1280x720 -e 0.5 -o monogame.ppm E:\Source\MonoGame@mono
E:\dev-software\gource\ffmpeg\bin\ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i monogame.ppm -vcodec libx264 -preset ultrafast -crf 18 -pix_fmt yuv420p -threads 0 -bf 0 monogame.avi
D:\gource\gource.exe --title "ArchStone Game - Development Visualization - Voxeliq Studios" -f -1680x1050 --seconds-per-day 0.3 --auto-skip-seconds 3 --key --follow-user raistlinthewiz --highlight-dirs --highlight-users --file-extensions --hide filenames,mouse
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment