From: Matt S Trout Date: Thu, 8 Jul 2010 23:23:05 +0000 (+0100) Subject: add bump-version utility for author-side work X-Git-Tag: release_1.0.1~3 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2FModule-Metadata.git;a=commitdiff_plain;h=534471a1fea2b54281a1a2ad2b108df8b0ca1e3d add bump-version utility for author-side work --- diff --git a/Author.PL b/Author.PL index c2f52d9..04dd585 100644 --- a/Author.PL +++ b/Author.PL @@ -1,14 +1,26 @@ use strict; use warnings FATAL => 'all'; +my $POSTAMBLE = q{bump: + maint/bump-version +bumpminor: + maint/bump-version minor +bumpmajor: + maint/bump-version major +}; + { package MY; + { no warnings 'once'; push @ExtUtils::MakeMaker::Overridable, 'find_tests'; } + sub find_tests { shift->SUPER::find_tests.' xt/*.t'; } + + sub postamble { $POSTAMBLE } } { diff --git a/maint/bump-version b/maint/bump-version new file mode 100755 index 0000000..26de88b --- /dev/null +++ b/maint/bump-version @@ -0,0 +1,36 @@ +#!/usr/bin/env perl + +use 5.010; +use strict; +use warnings FATAL => 'all'; +use autodie; + +chomp(my $LATEST = qx(grep '^[0-9]' Changes | head -1 | awk '{print \$1}')); + +my @parts = split /\./, $LATEST; + +my $OLD_DECIMAL = sprintf('%i.%03i%03i', @parts); + +my %bump_part = (major => 0, minor => 1, bugfix => 2); + +my $bump_this = + $bump_part{$ARGV[0]||'bugfix'} + // die "no idea which part to bump - $ARGV[0] means nothing to me"; + +my @new_parts = @parts; + +$new_parts[$bump_this]++; + +my $NEW_DECIMAL = sprintf('%i.%03i%03i', @new_parts); + +warn "Bumping $OLD_DECIMAL -> $NEW_DECIMAL\n"; + +my $PM_FILE = 'lib/Module/Metadata.pm'; + +my $file = do { local (@ARGV, $/) = ($PM_FILE); <> }; + +$file =~ s/(?<=\$VERSION = ')${\quotemeta $OLD_DECIMAL}/${NEW_DECIMAL}/; + +open my $out, '>', $PM_FILE; + +print $out $file;