X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDistar.pm;h=c58915065968d8ce7454d499c8b213c1d6d342da;hb=5154970c57b68f91b9c82f3e671a3c64d55609e8;hp=7169783e63508e308382fe8ed867ffcd544b076f;hpb=42e08a83216e13515942995a7f1707b12ac8b95b;p=p5sagit%2FDistar.git diff --git a/lib/Distar.pm b/lib/Distar.pm index 7169783..c589150 100644 --- a/lib/Distar.pm +++ b/lib/Distar.pm @@ -4,7 +4,7 @@ use strictures 1; use base qw(Exporter); our @EXPORT = qw( - author manifest_include + author manifest_include run_preflight ); sub import { @@ -22,7 +22,6 @@ our @Manifest = ( 'xt/lib' => '.pm', '' => '.PL', '' => qr{Changes|MANIFEST|README|META\.yml}, - '' => qr{t/smells-of-vcs/.svn}, 'maint' => qr{[^.].*}, ); @@ -49,21 +48,44 @@ sub write_manifest_skip { close $skip; } +sub run_preflight { + system("git fetch"); + + for (scalar `git status`) { + /Your branch is (behind|ahead of)/ && die "Not synced with upstream"; + } + + for (scalar `git diff`) { + length && die "Oustanding changes"; + } + my @cached = grep /^\+/, `git diff --cached -U0`; + @cached == 2 or die "Pre-commit Changes not just Changes line"; + $cached[0] eq "+++ b/Changes\n" or die "Changes not changed"; + my $ymd = sprintf( + "%i-%02i-%02i", (localtime)[5]+1900, (localtime)[4]+1, (localtime)[3] + ); + $cached[1] eq "+$ARGV[0] - $ymd\n" or die "Changes new line should be: \n\n$ARGV[0] - $ymd\n "; +} + sub MY::postamble { <<'END'; } -upload: $(DISTVNAME).tar$(SUFFIX) - cpan-upload $< +preflight: + perl -Idistar/lib -MDistar -erun_preflight $(VERSION) +upload: preflight disttest $(DISTVNAME).tar$(SUFFIX) + cpan-upload $(DISTVNAME).tar$(SUFFIX) release: upload git commit -a -m "Release commit for $(VERSION)" git tag release_$(VERSION) git push git push --tags +distdir: readmefile +readmefile: create_distdir + pod2text $(VERSION_FROM) >$(DISTVNAME)/README END { no warnings 'redefine'; sub main::WriteMakefile { my %args = @_; - system("pod2text $args{VERSION_FROM} >README"); ExtUtils::MakeMaker::WriteMakefile( @_, AUTHOR => our $Author, ABSTRACT_FROM => $args{VERSION_FROM}, test => { TESTS => ($args{test}{TESTS}||'').' xt/*.t' },