diff options
author | Aristotle Pagaltzis <pagaltzis@gmx.de> | 2018-08-19 04:28:53 +0200 |
---|---|---|
committer | Aristotle Pagaltzis <pagaltzis@gmx.de> | 2018-08-19 04:28:53 +0200 |
commit | 5fa996046475068abb0730b24eef067360c9122f (patch) | |
tree | 9415c9322fb189803c4a87cf12435bab2d72096f | |
parent | 4e13eb10e727c15fefc1d8fda762fc2ed8505631 (diff) |
drop dzil
-rw-r--r-- | Makefile.PL | 85 | ||||
-rw-r--r-- | boilerplate.pl | 41 | ||||
-rw-r--r-- | cpanfile | 9 | ||||
-rw-r--r-- | dist.ini | 27 | ||||
-rw-r--r-- | lib/Parse/MIME.pm | 14 |
5 files changed, 136 insertions, 40 deletions
diff --git a/Makefile.PL b/Makefile.PL new file mode 100644 index 0000000..00d7b3b --- /dev/null +++ b/Makefile.PL @@ -0,0 +1,85 @@ +use 5.006; use strict; use warnings; + +my $u = 'github.com/ap/Parse-MIME'; + +my %META = ( + name => 'Parse-MIME', + author => 'Aristotle Pagaltzis <pagaltzis@gmx.de>', + license => 'perl_5', + x_copyright => { holder => 'Aristotle Pagaltzis', year => 2015 }, + prereqs => { + configure => { requires => {qw( + ExtUtils::MakeMaker 0 + )} }, + runtime => { requires => {qw( + perl 5.006 + Exporter 0 + )} }, + test => { requires => {qw( + JSON::PP 0 + Test::More 0 + )} }, + }, + dynamic_config => 0, + resources => { + repository => { type => 'git', url => "git://$u.git", web => "https://$u" }, + bugtracker => { web => "https://$u/issues" }, + }, +); + +sub MY::postamble { <<'' } +create_distdir : MANIFEST +MANIFEST : + ( git ls-files ':!README.pod' . ; echo MANIFEST ) > MANIFEST +distdir : boilerplate +.PHONY : boilerplate +boilerplate : distmeta + $(PERL) boilerplate.pl $(DISTVNAME) + +## BOILERPLATE ############################################################### +require ExtUtils::MakeMaker; + +my %MM_ARGS; + +# have to do this since old EUMM dev releases miss the eval $VERSION line +my $eumm_version = eval $ExtUtils::MakeMaker::VERSION; +my $mymeta = $eumm_version >= 6.57_02; +my $mymeta_broken = $mymeta && $eumm_version < 6.57_07; + +($MM_ARGS{NAME} = $META{name}) =~ s/-/::/g; +($MM_ARGS{VERSION_FROM} = "lib/$MM_ARGS{NAME}.pm") =~ s{::}{/}g; +$MM_ARGS{ABSTRACT_FROM} = $MM_ARGS{VERSION_FROM}; +$META{license} = [ $META{license} ] + if $META{license} && !ref $META{license}; +$MM_ARGS{LICENSE} = $META{license}[0] + if $META{license} && $eumm_version >= 6.30; +$MM_ARGS{NO_MYMETA} = 1 + if $mymeta_broken; +$MM_ARGS{META_ADD} = { 'meta-spec' => { version => 2 }, %META } + unless -f 'META.yml'; +$MM_ARGS{PL_FILES} ||= {}; +$MM_ARGS{NORECURS} = 1 + if not exists $MM_ARGS{NORECURS}; + +for (qw(configure build test runtime)) { + my $key = $_ eq 'runtime' ? 'PREREQ_PM' : uc $_.'_REQUIRES'; + my $r = $MM_ARGS{$key} = { + %{$META{prereqs}{$_}{requires} || {}}, + %{delete $MM_ARGS{$key} || {}}, + }; + defined $r->{$_} or delete $r->{$_} for keys %$r; +} + +$MM_ARGS{MIN_PERL_VERSION} = delete $MM_ARGS{PREREQ_PM}{perl} || 0; + +delete $MM_ARGS{MIN_PERL_VERSION} + if $eumm_version < 6.47_01; +$MM_ARGS{BUILD_REQUIRES} = {%{$MM_ARGS{BUILD_REQUIRES}}, %{delete $MM_ARGS{TEST_REQUIRES}}} + if $eumm_version < 6.63_03; +$MM_ARGS{PREREQ_PM} = {%{$MM_ARGS{PREREQ_PM}}, %{delete $MM_ARGS{BUILD_REQUIRES}}} + if $eumm_version < 6.55_01; +delete $MM_ARGS{CONFIGURE_REQUIRES} + if $eumm_version < 6.51_03; + +ExtUtils::MakeMaker::WriteMakefile(%MM_ARGS); +## END BOILERPLATE ########################################################### diff --git a/boilerplate.pl b/boilerplate.pl new file mode 100644 index 0000000..77a0cb1 --- /dev/null +++ b/boilerplate.pl @@ -0,0 +1,41 @@ +use strict; use warnings; + +use CPAN::Meta; +use Software::LicenseUtils; +use Pod::Readme::Brief; + +sub slurp { open my $fh, '<', $_[0] or die "Couldn't open $_[0] to read: $!\n"; readline $fh } + +chdir $ARGV[0] or die "Cannot chdir to $ARGV[0]: $!\n"; + +my %file; + +my $meta = CPAN::Meta->load_file( 'META.json' ); + +my $license = do { + my @key = ( $meta->license, $meta->meta_spec_version ); + my ( $class, @ambiguous ) = Software::LicenseUtils->guess_license_from_meta_key( @key ); + die if @ambiguous; + $class->new( $meta->custom( 'x_copyright' ) ); +}; + +$file{'LICENSE'} = $license->fulltext; + +my @source = slurp 'lib/Parse/MIME.pm'; +splice @source, -2, 0, map "$_\n", '', '=head1 AUTHOR', '', $meta->authors; +splice @source, -2, 0, split /(?<=\n)/, "\n=head1 COPYRIGHT AND LICENSE\n\n" . $license->notice; +$file{'lib/Parse/MIME.pm'} = join '', @source; + +die unless -e 'Makefile.PL'; +$file{'README'} = Pod::Readme::Brief->new( @source )->render( installer => 'eumm' ); + +my @manifest = slurp 'MANIFEST'; +my %manifest = map /\A([^\s#]+)()/, @manifest; +$file{'MANIFEST'} = join '', sort @manifest, map "$_\n", grep !exists $manifest{ $_ }, keys %file; + +for my $fn ( sort keys %file ) { + unlink $fn if -e $fn; + open my $fh, '>', $fn or die "Couldn't open $fn to write: $!\n"; + print $fh $file{ $fn }; + close $fh or die "Couldn't close $fn after writing: $!\n"; +} diff --git a/cpanfile b/cpanfile deleted file mode 100644 index 6cc4503..0000000 --- a/cpanfile +++ /dev/null @@ -1,9 +0,0 @@ -requires 'perl', '5.006'; -requires 'Exporter'; - -on test => sub { - requires 'JSON::PP'; - requires 'Test::More'; -}; - -# vim: ft=perl diff --git a/dist.ini b/dist.ini deleted file mode 100644 index a4ca8d9..0000000 --- a/dist.ini +++ /dev/null @@ -1,27 +0,0 @@ -name = Parse-MIME -version = 1.003 -author = Aristotle Pagaltzis <pagaltzis@gmx.de> -license = Perl_5 -copyright_holder = Aristotle Pagaltzis -copyright_year = 2015 - -[MetaResources] -repository.type = git -repository.url = git://github.com/ap/Parse-MIME.git -repository.web = https://github.com/ap/Parse-MIME -bugtracker.web = https://github.com/ap/Parse-MIME/issues - -[@Filter / @Basic] --bundle = @Basic --remove = Readme - -[MetaJSON] -[PkgVersion] -[PruneFiles] -filename = README.pod - -; non-core plugins -[CheckChangeLog] -[Prereqs::FromCPANfile] -[Readme::Brief] -[PodWeaver] diff --git a/lib/Parse/MIME.pm b/lib/Parse/MIME.pm index bf1c727..f2e31ca 100644 --- a/lib/Parse/MIME.pm +++ b/lib/Parse/MIME.pm @@ -1,10 +1,8 @@ -use 5.006; -use strict; -use warnings; +use 5.006; use strict; use warnings; package Parse::MIME; -# ABSTRACT: Parse mime-types, match against media ranges +our $VERSION = '1.003'; use Exporter 'import'; our @EXPORT_OK = qw( @@ -122,6 +120,12 @@ __END__ =pod +=encoding UTF-8 + +=head1 NAME + +Parse::MIME - Parse mime-types, match against media ranges + =head1 SYNOPSIS use Parse::MIME qw( best_match ); @@ -204,3 +208,5 @@ format of the HTTP C<Accept> header. F.ex.: best_match( [ qw( application/xbel+xml text/xml ) ], 'text/*;q=0.5,*/*; q=0.1' ) # 'text/xml' + +=cut |