#!/opt/local/bin/perl use strict; use warnings; my $workdir = shift || die "No work directory supplied\n"; chdir $workdir; my @files = glob('./*.tar.gz'); my %dists; for my $file (@files) { my($dist_name,$release) = ($file =~ m{\A(.*)-(\d+\.\d+)\.tar.gz}) or next; $dist_name =~ s{./}{}; push @{$dists{$dist_name}}, $release; } for my $dist (sort keys %dists) { my $lowered = lc($dist); mkdir $lowered; chdir $lowered; system qq(git init); chdir '..'; for my $release (sort @{ $dists{$dist} } ) { system qq(tar zxvf $dist-$release.tar.gz); system qq(rsync -avv $dist-$release/ $lowered); chdir $lowered; system qq(mv .cvsignore .gitignore); system qq(git diff); system qq(git add .); system qq(git commit -a -m'$release release'); chdir '..'; } }