X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=samples%2Fgengentooisms;h=ca69b2360d42c43c547e6d5014c44bc97e260d80;hb=befc67bc91691a8ee10b9696d61ea3bb49e5b3d0;hp=b554f9bb2916da14a4dd4778f7adc8fef4e5c88e;hpb=2eb39130ee05208fc41d7c671a4050d64799c00b;p=perl%2Fmodules%2FCPANPLUS-Dist-Gentoo.git diff --git a/samples/gengentooisms b/samples/gengentooisms index b554f9b..ca69b23 100755 --- a/samples/gengentooisms +++ b/samples/gengentooisms @@ -8,12 +8,29 @@ use strict; use warnings; use Fatal; +use Cwd qw/cwd/; use List::Util qw/max/; +use File::Copy qw/copy/; use constant PORTAGE => '/usr/portage'; +use constant TARGET => 'lib/CPANPLUS/Dist/Gentoo/Maps.pm'; +use constant BACKUP => TARGET . '.bak'; my %gentooism; +my %where = ( + 'Audio-CD-disc-cover' => 1, + 'aww' => 0, + 'frontier-rpc' => 1, + 'gimp-perl' => 1, + 'gnome2-wnck' => 1, + 'HTML-Object' => 0, + 'JKFlow' => 0, + 'PDF-Create' => 0, +); + +my $cwd = cwd(); + for my $category (qw/perl-core dev-perl/) { my $dir = PORTAGE . '/' . $category; chdir $dir; @@ -22,6 +39,7 @@ for my $category (qw/perl-core dev-perl/) { my $eb = (sort glob "$dir/$name/$name-*")[-1]; open my $fh, '<', $eb; my ($pn, $on_cpan); + $on_cpan = $where{$name} if exists $where{$name}; while (<$fh>) { $on_cpan = 1 if not defined $on_cpan and /(?:MODULE_AUTHOR|SRC_URI=.*?(?i:cpan))/; @@ -46,18 +64,30 @@ for my $category (qw/perl-core dev-perl/) { if ($pn and $pn ne $name) { if ($on_cpan) { $gentooism{$pn} = $name; - } else { + } elsif (not defined $on_cpan) { print STDERR "'$pn' => '$name' may not be on CPAN\n"; } } } } +chdir $cwd; + +copy TARGET, BACKUP or die "copy failed: $!"; + +open my $src, '<', BACKUP; +open my $dst, '>', TARGET; + my $max = max map length, keys %gentooism; +SRC: while (<$src>) { + print $dst $_; + if (/^__DATA__$/) { + printf $dst "%s%s %s\n", $_, (' ' x ($max - length)), $gentooism{$_} + for sort keys %gentooism; + last SRC; + } +} + print STDERR +(keys %gentooism) . " gentooisms found\n"; -print "my %gentooism = (\n"; -printf " '%s'%s => '%s',\n", $_, (' ' x ($max - length)), $gentooism{$_} - for sort keys %gentooism; -print ");\n";