X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDistar.pm;h=0407ca1cca1feb13cad9d80743b9094ee7c5681b;hb=f9b5ed238703b01cf8ffda409028cc4072a4d65f;hp=fb4db686426a68941b165c045e091491d344df15;hpb=26648fb062087cc9ccfed33f78755c91a939b6b1;p=p5sagit%2FDistar.git diff --git a/lib/Distar.pm b/lib/Distar.pm index fb4db68..0407ca1 100644 --- a/lib/Distar.pm +++ b/lib/Distar.pm @@ -159,6 +159,21 @@ sub _clone { ]; }; + if ( eval { require CPAN::Meta; require Module::Metadata; } ) { + $meta->{provides} ||= do { + my $meta_obj = CPAN::Meta->new($meta, { lazy_validation => 1 }); + my @files = `git ls-files`; + chomp @files; + my $provides = Module::Metadata->package_versions_from_directory('.', \@files); + for my $module (keys %$provides) { + delete $provides->{$module} + unless $meta_obj->should_index_package($module) + && $meta_obj->should_index_file($provides->{$module}{file}); + } + $provides; + }; + } + %$meta; }