my ($fqn_dist, $path);
if (defined $uri) {
if ($uri =~ m{cpan.*?/id/(\S+)}) {
- $fqn_dist = $1;
- $path = "authors/id/$fqn_dist";
- $is_on_cpan{$pkg_name} = 1;
+ $fqn_dist = $1;
+ $path = "authors/id/$fqn_dist";
} elsif ($uri =~ m{mirror://cpan/(\S+)}) {
- $path = $1;
- $is_on_cpan{$pkg_name} = 1;
+ $path = $1;
} elsif ($uri =~ m{/([^/\s]+)(?:\s|$)}) {
- my $archive = $1;
+ my $archive = $1;
my ($top_level) = $archive =~ /^([^-]+)/;
- $path = "modules/by-module/$top_level/$archive";
+ $path = "modules/by-module/$top_level/$archive";
}
}
push @not_on_cpan, "$category/$pkg_name";
next;
}
- p(2, "fetches $path\n");
my $dist;
if (defined $fqn_dist) {
- p(2, 'is indexed on the CPAN... ');
+ p(2, "is $fqn_dist indexed on the CPAN... ");
$dist = do {
local $@;
eval { $pcp->distribution($fqn_dist) }
}
unless (defined $dist) {
- p(2, 'can directly be found on a CPAN mirror... ');
+ p(2, "can $path be found on a CPAN mirror... ");
if (cpan_http_test($path)) {
print "yes\n";
$dist = CPAN::DistnameInfo->new($path);
my ($pseudo_dist, $latest_dist);
unless (defined $dist) {
- p(2, 'has the same name as a distribution on the CPAN... ');
$path =~ m{([^/\s]+)$} or die 'Could not get the last part of the path';
my $archive = $1;
$pseudo_dist = CPAN::DistnameInfo->new($archive);
+
+ p(2, 'is ' . $pseudo_dist->dist . ' the name of a CPAN distribution... ');
$latest_dist = do {
local $@;
eval { $pcp->latest_distribution($pseudo_dist->dist) };
unless (defined $latest_dist) {
print "no\n";
- p(2, 'is similiar to a module indexed in another distribution of the CPAN... ');
(my $mod_name = $pkg_name) =~ s/-/::/g;
+ p(2, "is $mod_name indexed in another CPAN distribution... ");
$latest_dist = do {
local $@;
eval {
if (defined $latest_dist) {
$latest_file = $latest_dist->filename;
$latest_author = $latest_dist->cpanid;
- printf "yes, %s by %s\n",
+ printf "yes, in %s by %s\n",
$latest_file,
(defined $latest_author ? $latest_author : 'unknown');
} else {
if (defined $latest_author) {
my ($au, $a) = $latest_author =~ /^((.).)/ or die 'Author name too short';
- p(2, 'is in that author\'s CPAN directory... ');
+ p(2, "is $archive in that author\'s CPAN directory... ");
my $alternate_path = "authors/id/$a/$au/$latest_author/$archive";
if ($alternate_path eq $path) {
print "already checked\n";
unless (defined $dist) {
if ($latest_dist or $is_on_cpan{$pkg_name}) {
$dist = $pseudo_dist;
- unless ($latest_dist) {
+ p(2, "seems to be a CPAN distribution");
+ if ($latest_dist) {
+ print "\n";
+ } else {
+ # Implies $is_on_cpan{$pkg_name}
+ print " (forced)\n";
push @unfindable, "$category/$pkg_name";
}
- p(2, "seems to come from the CPAN anyway\n");
} else {
p(2, colored("$pkg_name is not a CPAN distribution", 'bright_red') . "\n");
push @not_on_cpan, "$category/$pkg_name";