Move Digest from ext/ to cpan/
[p5sagit/p5-mst-13.2.git] / Porting / corecpan.pl
index d035bcd..6fced80 100644 (file)
@@ -81,19 +81,25 @@ foreach my $source (@sources) {
     for my $dist (sort keys %Modules) {
        next unless $Modules{$dist}{CPAN};
        for my $file (get_module_files($dist)) {
-           next if $file !~ /\.pm\z/ or $file =~ m{^t/} or $file =~ m{/t/};
+           next if $file !~ /(\.pm|_pm.PL)\z/
+                       or $file =~ m{^t/} or $file =~ m{/t/};
            my $vcore = '!EXIST';
            $vcore = MM->parse_version($file) // 'undef' if -f $file;
+
+           # get module name from filename to lookup CPAN version
            my $module = $file;
+           $module =~ s/\_pm.PL\z//;
            $module =~ s/\.pm\z//;
            # some heuristics to figure out the module name from the file name
            $module =~ s{^(lib|ext)/}{}
                and $1 eq 'ext'
-               and ( $module =~ s{^(.*)/lib/\1\b}{$1},
-                     $module =~ s{(\w+)/\1\b}{$1},
-                     $module =~ s{^Encode/encoding}{encoding},
-                     $module =~ s{^MIME/Base64/QuotedPrint}{MIME/QuotedPrint},
-                     $module =~ s{^List/Util/lib/Scalar}{Scalar},
+               and (
+                     # ext/Foo-Bar/Bar.pm
+                     $module =~ s{^(\w+)-(\w+)/\2$}{$1/lib/$1/$2},
+                     # ext/Encode/Foo/Foo.pm
+                     $module =~ s{^(Encode)/(\w+)/\2$}{$1/lib/$1/$2},
+                     $module =~ s{^[^/]+/}{},
+                     $module =~ s{^lib/}{},
                    );
            $module =~ s{/}{::}g;
            my $vcpan = $cpanversions{$module} // 'undef';