X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Porting%2Fmakemeta;h=167209ab6fb2ea30ba5c4665ea8bb31e5f09fc0a;hb=338584c0b1c948a967b5e2ecbb69c512410589e4;hp=9889c8e81ac5241b80c21ee95998d13113651220;hpb=0cf5154416a0eea5954731af354063d20292b41e;p=p5sagit%2Fp5-mst-13.2.git diff --git a/Porting/makemeta b/Porting/makemeta index 9889c8e..167209a 100644 --- a/Porting/makemeta +++ b/Porting/makemeta @@ -1,9 +1,15 @@ -#!/usr/bin/perl -w +#!./perl -w +# this script must be run by the current perl to get perl's version right +# +# Create a META.yml file in the current directory. Must be run from the +# root directory of a perl source tree. use strict; use warnings; use lib "Porting"; +use File::Basename qw( dirname ); + my $file = "META.yml"; die "$0: will not override $file, delete it first.\n" if -e $file; @@ -13,7 +19,23 @@ my @CPAN = grep { $Modules{$_}{CPAN} } keys %Modules; my @files = map { get_module_files($_) } @CPAN; my @dirs = grep { -d $_ } map { get_module_pat($_) } @CPAN; -my $files = join '', map { " - $_\n" } sort { lc $a cmp lc $b } @files; +my %dirs; +@dirs{@dirs} = (); + +my $files = join '', map { " - $_\n" } + grep { + my $d = $_; + while(($d = dirname($d)) ne "."){ + last if exists $dirs{$d}; + } + + # if $d is "." it means we tried every parent dir of the file and none + # of them were in the private list + + $d eq "."; + } + sort { lc $a cmp lc $b } @files; + my $dirs = join '', map { " - $_\n" } sort { lc $a cmp lc $b } @dirs; open my $fh, ">$file" or die "Can't open $file: $!"; @@ -21,11 +43,16 @@ open my $fh, ">$file" or die "Can't open $file: $!"; print $fh <<"EOI"; name: perl version: $] -abstract: Practical Extraction and Reporting Language +abstract: Practical Extraction and Report Language author: perl5-porters\@perl.org license: perl +resources: + homepage: http://www.perl.org/ + bugtracker: http://rt.perl.org/perlbug/ + license: http://dev.perl.org/licenses/ distribution_type: core -private: +generated_by: $0 +no_index: directory: $dirs file: