Line | |
---|
1 | #!./perl -w
|
---|
2 | # this script must be run by the current perl to get perl's version right
|
---|
3 |
|
---|
4 | use strict;
|
---|
5 | use warnings;
|
---|
6 | use lib "Porting";
|
---|
7 |
|
---|
8 | use File::Basename qw( dirname );
|
---|
9 |
|
---|
10 | my $file = "META.yml";
|
---|
11 | die "$0: will not override $file, delete it first.\n" if -e $file;
|
---|
12 |
|
---|
13 | use Maintainers qw(%Modules get_module_files get_module_pat);
|
---|
14 |
|
---|
15 | my @CPAN = grep { $Modules{$_}{CPAN} } keys %Modules;
|
---|
16 | my @files = map { get_module_files($_) } @CPAN;
|
---|
17 | my @dirs = grep { -d $_ } map { get_module_pat($_) } @CPAN;
|
---|
18 |
|
---|
19 | my %dirs;
|
---|
20 | @dirs{@dirs} = ();
|
---|
21 |
|
---|
22 | my $files = join '', map { " - $_\n" }
|
---|
23 | grep {
|
---|
24 | my $d = $_;
|
---|
25 | while(($d = dirname($d)) ne "."){
|
---|
26 | last if exists $dirs{$d};
|
---|
27 | }
|
---|
28 |
|
---|
29 | # if $d is "." it means we tried every parent dir of the file and none
|
---|
30 | # of them were in the private list
|
---|
31 |
|
---|
32 | $d eq ".";
|
---|
33 | }
|
---|
34 | sort { lc $a cmp lc $b } @files;
|
---|
35 |
|
---|
36 | my $dirs = join '', map { " - $_\n" } sort { lc $a cmp lc $b } @dirs;
|
---|
37 |
|
---|
38 | open my $fh, ">$file" or die "Can't open $file: $!";
|
---|
39 |
|
---|
40 | print $fh <<"EOI";
|
---|
41 | name: perl
|
---|
42 | version: $]
|
---|
43 | abstract: Practical Extraction and Reporting Language
|
---|
44 | author: perl5-porters\@perl.org
|
---|
45 | license: perl
|
---|
46 | distribution_type: core
|
---|
47 | private:
|
---|
48 | directory:
|
---|
49 | $dirs
|
---|
50 | file:
|
---|
51 | $files
|
---|
52 | EOI
|
---|
53 |
|
---|
54 | close $fh;
|
---|
55 |
|
---|
Note:
See
TracBrowser
for help on using the repository browser.