X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FCPANPLUS-Dist-Gentoo.git;a=blobdiff_plain;f=samples%2Fgengentooisms;h=980ecbf7dcaf56b8b4418080ad5deb7a6e347853;hp=aad8df14cbda3811d58f071e0cc752fe27424b33;hb=5b30d3775087ec80c860185b6fe18998629beacf;hpb=f219fb5c8cccca8954f6ada1fc34ea6baf67c9ab diff --git a/samples/gengentooisms b/samples/gengentooisms index aad8df1..980ecbf 100755 --- a/samples/gengentooisms +++ b/samples/gengentooisms @@ -112,10 +112,25 @@ sub parse_portage_tree { die "system(\"@cmd\") returned $ret and/or failed with status $code"; } - while ($err =~ /SRC_URI=((['"]).*?\2|\S+)/gs) { - $uri = $1; - $uri =~ s{^(['"])(.*?)\1$}{$2}s; + my %map; + while ($err =~ /([a-zA-Z0-9_]+)=((['"]).*?\3|\S+)/gs) { + my $key = $1; + my $val = $2; + $val =~ s{^(['"])(.*?)\1$}{$2}s; + $map{$key} = $val; } + + $uri = $map{SRC_URI}; + unless (defined $uri) { + my $author = $map{MODULE_AUTHOR}; + if (defined $author) { + my ($au, $a) = $author =~ /^((.).)/; + my $dist_version = $map{MODULE_VERSION}; + $dist_version = $last->[1] unless defined $dist_version; + $uri = "mirror://cpan/$a/$au/$author/$pkg_name/$dist_version.tar.gz"; + } + } + $fetched_uri{$ebuild} = $uri; Storable::store([ $timestamp,