]> git.vpit.fr Git - perl/modules/CPANPLUS-Dist-Gentoo.git/commitdiff
Try to lookup unknown dists as modules
authorVincent Pit <vince@profvince.com>
Thu, 14 Jun 2012 23:11:48 +0000 (01:11 +0200)
committerVincent Pit <vince@profvince.com>
Thu, 14 Jun 2012 23:26:40 +0000 (01:26 +0200)
This catches Template-Latex correctly in Template-Plugin-Latex.

lib/CPANPLUS/Dist/Gentoo/Maps.pm
samples/gengentooisms

index fb2cbd699137a7feab6c01f9f37d10855223d7bc..957450dd6621206e832dde99186d5705b4223eae 100644 (file)
@@ -410,6 +410,7 @@ Pod-Parser              PodParser
 Regexp-Common           regexp-common
 Set-Scalar              set-scalar
 String-CRC32            string-crc32
+Template-Plugin-Latex   Template-Latex
 Text-Autoformat         text-autoformat
 Text-Reform             text-reform
 Text-Template           text-template
index 980ecbf7dcaf56b8b4418080ad5deb7a6e347853..03253e053397a87edec037b6624ca2fb9cda5bb8 100755 (executable)
@@ -32,6 +32,8 @@ use constant STATE_FILE  => 'gentooisms.state.sto';
 
 my %is_on_cpan = (
  'Audio-CD-disc-cover' => 0,
+ 'Video-Frequencies'   => 0,
+ 'Sphinx-Search'       => 1,
  'WattsUp-Daemon'      => 1,
 );
 
@@ -193,6 +195,28 @@ sub parse_portage_tree {
      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;
+     $latest_dist = do {
+      local $@;
+      eval {
+       my $module = $pcp->package($mod_name);
+       defined $module ? $module->distribution : undef;
+      };
+     };
+     if (defined $latest_dist) {
+      # Re-forge the pseudo dist so that it will pick up the correct dist
+      # name when looking for a mismatch.
+      $pseudo_dist = CPAN::DistnameInfo->new(
+       $latest_dist->dist . '-' . $pseudo_dist->version
+                          . '.' . $pseudo_dist->extension
+      );
+     }
+    }
+
     my ($latest_file, $latest_author);
     if (defined $latest_dist) {
      $latest_file   = $latest_dist->filename;