X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDistar.pm;h=5cf0c1e4cc51daedc608471a91389bd0f7e5cd93;hb=c12b6d29cdd07c88273604529b5b201904693ae3;hp=dfa2de8f45ac1170487d35d40800453b02967d08;hpb=0887b8ff1b12ce4c08542602e809a23225d76967;p=p5sagit%2FDistar.git diff --git a/lib/Distar.pm b/lib/Distar.pm index dfa2de8..5cf0c1e 100644 --- a/lib/Distar.pm +++ b/lib/Distar.pm @@ -1,6 +1,7 @@ package Distar; -use strictures 1; +use strict; +use warnings FATAL => 'all'; use base qw(Exporter); use ExtUtils::MakeMaker (); use ExtUtils::MM (); @@ -11,16 +12,23 @@ use File::Spec; our $VERSION = '0.001000'; $VERSION = eval $VERSION; +my $MM_VER = eval $ExtUtils::MakeMaker::VERSION; + our @EXPORT = qw( author manifest_include run_preflight ); sub import { - strictures->import; + strict->import; + warnings->import(FATAL => 'all'); shift->export_to_level(1,@_); } -sub author { our $Author = shift } +sub author { + our $Author = shift; + $Author = [ $Author ] + if !ref $Author; +} our $Ran_Preflight; @@ -85,7 +93,7 @@ sub run_preflight { } for (scalar `git status`) { - /^# On branch master/ || die "Not on master. EEEK"; + /^(?:# )?On branch master/ || die "Not on master. EEEK"; /Your branch is behind|Your branch and .*? have diverged/ && die "Not synced with upstream"; } @@ -93,7 +101,7 @@ sub run_preflight { length && die "Outstanding changes"; } my $ymd = sprintf( - "%i-%02i-%02i", (localtime)[5]+1900, (localtime)[4]+1, (localtime)[3] + "%i-%02i-%02i", (gmtime)[5]+1900, (gmtime)[4]+1, (gmtime)[3] ); my $changes_line = "$version - $ymd\n"; my @cached = grep /^\+/, `git diff --cached -U0`; @@ -101,6 +109,9 @@ sub run_preflight { @cached == 2 or die "Pre-commit Changes not just Changes line"; $cached[0] =~ /^\+\+\+ .\/Changes\n/ or die "Changes not changed"; $cached[1] eq "+$changes_line" or die "Changes new line should be: \n\n$changes_line "; + + { no warnings 'exec'; `cpan-upload -h`; } + $? and die "cpan-upload not available"; } { @@ -111,11 +122,12 @@ sub run_preflight { sub new { my ($class, $args) = @_; return $class->SUPER::new({ - LICENSE => 'perl', + LICENSE => 'perl_5', + MIN_PERL_VERSION => '5.006', + AUTHOR => ($MM_VER >= 6.5702 ? $Distar::Author : $Distar::Author->[0]), %$args, - AUTHOR => $Distar::Author, ABSTRACT_FROM => $args->{VERSION_FROM}, - test => { TESTS => ($args->{test}{TESTS}||'t/*.t').' xt/*.t' }, + test => { TESTS => ($args->{test}{TESTS}||'t/*.t').' xt/*.t xt/*/*.t' }, }); } @@ -138,6 +150,9 @@ distdir: readmefile readmefile: create_distdir pod2text $(VERSION_FROM) >$(DISTVNAME)/README $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) ../Distar/helpers/add-readme-to-manifest +disttest: distmanicheck +distmanicheck: create_distdir + cd $(DISTVNAME) && $(ABSPERLRUN) "-MExtUtils::Manifest=manicheck" -e "exit manicheck" END if (open my $fh, '<', 'maint/Makefile.include') {