File Coverage

Makefile.PL
Criterion Covered Total %
statement 7 74 9.4
branch 0 48 0.0
condition 0 6 0.0
subroutine 3 8 37.5
pod n/a
total 10 136 7.3


line stmt bran cond sub pod time code
1             # -*- mode: perl; c-basic-offset: 4; indent-tabs-mode: nil; -*-
2              
3 1     1   480 use strict;
  1         2  
  1         36  
4 1     1   873 use ExtUtils::MakeMaker qw(WriteMakefile);
  1         108132  
  1         1261  
5             # See lib/ExtUtils/MakeMaker.pm for details of how to influence
6             # the contents of the Makefile that is written.
7              
8             # Normalize version strings like 6.30_02 to 6.3002,
9             # so that we can do numerical comparisons on it.
10             my $eumm_version = $ExtUtils::MakeMaker::VERSION;
11             $eumm_version =~ s/_//;
12              
13             my $module = 'HTML::Rebase';
14             (my $main_file = "lib/$module.pm" ) =~ s!::!/!g;
15             (my $distbase = $module) =~ s!::!-!g;
16             my $distlink = lc $distbase;
17              
18             my @tests = map { glob $_ } 't/*.t', 't/*/*.t';
19              
20             my %module = (
21             NAME => $module,
22             AUTHOR => q{Max Maischein },
23             VERSION_FROM => $main_file,
24             ABSTRACT_FROM => $main_file,
25             META_MERGE => {
26             "meta-spec" => { version => 2 },
27             resources => {
28             repository => {
29             web => "https://github.com/Corion/$distlink",
30             url => "git://github.com/Corion/$distlink.git",
31             type => 'git',
32             }
33             },
34             dynamic_config => 0, # we promise to keep META.* up-to-date
35             x_static_install => 1, # we are pure Perl and don't do anything fancy
36             },
37              
38             MIN_PERL_VERSION => '5.006',
39              
40             'LICENSE'=> 'perl',
41              
42             PL_FILES => {},
43             BUILD_REQUIRES => {
44             'ExtUtils::MakeMaker' => 0,
45             },
46              
47             PREREQ_PM => {
48             'Exporter' => '5', # we need the "import" facility
49             'Carp' => '0',
50             'URI::URL' => '0',
51             'URI::WithBase' => '0',
52             },
53             TEST_REQUIRES => {
54             'Test::More' => 0,
55             },
56              
57             dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
58             clean => { FILES => "$distbase-*" },
59              
60             test => { TESTS => join( ' ', @tests ) },
61             );
62              
63             # This is so that we can do
64             # require 'Makefile.PL'
65             # and then call get_module_info
66              
67 1     1   11 sub get_module_info { %module }
68              
69             if( ! caller ) {
70             # I should maybe use something like Shipwright...
71             regen_README($main_file);
72             regen_EXAMPLES() if -d 'examples';
73             WriteMakefile1(get_module_info);
74             };
75              
76             1;
77              
78             sub WriteMakefile1 { #Written by Alexandr Ciornii, version 0.21. Added by eumm-upgrade.
79 0     0     my %params=@_;
80 0           my $eumm_version=$ExtUtils::MakeMaker::VERSION;
81 0           $eumm_version=eval $eumm_version;
82 0 0         die "EXTRA_META is deprecated" if exists $params{EXTRA_META};
83 0 0         die "License not specified" if not exists $params{LICENSE};
84 0 0 0       if ($params{BUILD_REQUIRES} and $eumm_version < 6.5503) {
85             #EUMM 6.5502 has problems with BUILD_REQUIRES
86 0 0         $params{PREREQ_PM}={ %{$params{PREREQ_PM} || {}} , %{$params{BUILD_REQUIRES}} };
  0            
  0            
87 0           delete $params{BUILD_REQUIRES};
88             }
89 0 0 0       if ($params{TEST_REQUIRES} and $eumm_version < 6.64) {
90 0 0         $params{PREREQ_PM}={ %{$params{PREREQ_PM} || {}} , %{$params{TEST_REQUIRES}} };
  0            
  0            
91 0           delete $params{TEST_REQUIRES};
92             }
93 0 0         delete $params{CONFIGURE_REQUIRES} if $eumm_version < 6.52;
94 0 0         delete $params{MIN_PERL_VERSION} if $eumm_version < 6.48;
95 0 0         delete $params{META_MERGE} if $eumm_version < 6.46;
96 0 0         delete $params{META_ADD} if $eumm_version < 6.46;
97 0 0         delete $params{LICENSE} if $eumm_version < 6.31;
98 0 0         delete $params{AUTHOR} if $] < 5.005;
99 0 0         delete $params{ABSTRACT_FROM} if $] < 5.005;
100 0 0         delete $params{BINARY_LOCATION} if $] < 5.005;
101              
102 0           WriteMakefile(%params);
103             }
104              
105             sub regen_README {
106             # README is the short version that just tells people what this is
107             # and how to install it
108 0     0     eval {
109             # Get description
110 0           my $readme = join "\n",
111             pod_section($_[0], 'NAME', 'no heading' ),
112             pod_section($_[0], 'DESCRIPTION' ),
113             <
114              
115             INSTALLATION
116              
117             This is a Perl module distribution. It should be installed with whichever
118             tool you use to manage your installation of Perl, e.g. any of
119              
120             cpanm .
121             cpan .
122             cpanp -i .
123              
124             Consult http://www.cpan.org/modules/INSTALL.html for further instruction.
125             Should you wish to install this module manually, the procedure is
126              
127             perl Makefile.PL
128             make
129             make test
130             make install
131              
132             INSTALL
133             pod_section($_[0], 'REPOSITORY'),
134             pod_section($_[0], 'SUPPORT'),
135             pod_section($_[0], 'TALKS'),
136             pod_section($_[0], 'KNOWN ISSUES'),
137             pod_section($_[0], 'BUG TRACKER'),
138             pod_section($_[0], 'CONTRIBUTING'),
139             pod_section($_[0], 'SEE ALSO'),
140             pod_section($_[0], 'AUTHOR'),
141             pod_section($_[0], 'LICENSE' ),
142             pod_section($_[0], 'COPYRIGHT' ),
143             ;
144 0           update_file( 'README', $readme );
145             };
146             # README.mkdn is the documentation that will be shown as the main
147             # page of the repository on Github. Hence we recreate the POD here
148             # as Markdown
149 0           eval {
150 0           require Pod::Markdown;
151              
152 0           my $parser = Pod::Markdown->new();
153              
154             # Read POD from Module.pm and write to README
155 0           $parser->parse_from_file($_[0]);
156 0           my $readme_mkdn = <as_markdown;
157              
158             [![Travis Build Status](https://travis-ci.org/Corion/$distlink.svg?branch=master)](https://travis-ci.org/Corion/$distlink)
159             [![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/github/Corion/$distlink?branch=master&svg=true)](https://ci.appveyor.com/project/Corion/$distlink)
160              
161             STATUS
162 0           update_file( 'README.mkdn', $readme_mkdn );
163             };
164             }
165              
166             sub pod_section {
167 0     0     my( $filename, $section, $remove_heading ) = @_;
168 0 0         open my $fh, '<', $filename
169             or die "Couldn't read '$filename': $!";
170              
171             my @section =
172 0           grep { /^=head1\s+$section/.../^=/ } <$fh>;
  0            
173              
174             # Trim the section
175 0 0         if( @section ) {
176 0 0         pop @section if $section[-1] =~ /^=/;
177 0 0         shift @section if $remove_heading;
178              
179             pop @section
180 0           while $section[-1] =~ /^\s*$/;
181             shift @section
182 0           while $section[0] =~ /^\s*$/;
183             };
184              
185 0           @section = map { $_ =~ s!^=\w+\s+!!; $_ } @section;
  0            
  0            
186 0           return join "", @section;
187             }
188              
189             sub regen_EXAMPLES {
190 0     0     my $perl = $^X;
191 0 0         if ($perl =~/\s/) {
192 0           $perl = qq{"$perl"};
193             };
194 0           (my $example_file = $main_file) =~ s!\.pm$!/Examples.pm!;
195 0           my $examples = `$perl -w examples/gen_examples_pod.pl`;
196 0 0         if ($examples) {
197 0           warn "(Re)Creating $example_file\n";
198 0           $examples =~ s/\r\n/\n/g;
199 0           update_file( $example_file, $examples );
200             };
201             };
202              
203             sub update_file {
204 0     0     my( $filename, $new_content ) = @_;
205 0           my $content;
206 0 0         if( -f $filename ) {
207 0 0         open my $fh, '<', $filename
208             or die "Couldn't read '$filename': $!";
209 0           binmode $fh;
210 0           local $/;
211 0           $content = <$fh>;
212             };
213              
214 0 0         if( $content ne $new_content ) {
215 0 0         if( open my $fh, '>', $filename ) {
216 0           binmode $fh;
217 0           print $fh $new_content;
218             } else {
219 0           warn "Couldn't (re)write '$filename': $!";
220             };
221             };
222             }