Author: dagolden
Date: Tue Jul 7 13:56:51 2009
New Revision: 13011
Modified:
Module-Build/trunk/devtools/bump_version.pl
Log:
updated bump_version.pl that supports reversioning
Modified: Module-Build/trunk/devtools/bump_version.pl
==============================================================================
--- Module-Build/trunk/devtools/bump_version.pl (original)
+++ Module-Build/trunk/devtools/bump_version.pl Tue Jul 7 13:56:51 2009
@@ -35,7 +35,7 @@
}
die "must bump forward! ($version < $current)\n"
- unless($version >= $current);
+ unless(eval $version >= eval $current);
# NEVER BUMP THESE $VERSION numbers
my @excluded = qw(
@@ -61,19 +61,34 @@
my @head;
while(@lines) {
my $line = shift(@lines);
- if($line =~ m/^$current - \w/) {
- warn "Updating '$file'\n";
- open(my $ofh, '>', $file) or die "cannot write '$file' $!";
- print $ofh @head, "$version - \n", "\n", $line, @lines;
- close($ofh) or die "cannot write '$file' $!";
- return;
- }
- elsif($line =~ m/^$version(?: *- *)?$/) {
- # TODO should just be checking for a general number+eol case?
- die "$file probably needs to be reverted!";
- }
- elsif($line =~ m/^$current(?: *- *)?$/) {
- die "Error parsing $file - found unreleased '$current'";
+ if($line =~ m/^$current/ ) {
+ # unreleased case -- re-bumping
+ if($line =~ m/^$current(?: *- *)?$/) {
+ print "Error parsing $file - found unreleased '$current'\n";
+ local $| = 1;
+ print "Are you sure you want to change the version number (y/n)? [n]:";
+ chomp(my $ans = <STDIN>);
+ if ( $ans !~ /^y/i ) {
+ print "Aborting!\n";
+ exit 1;
+ }
+ warn "Updating '$file'\n";
+ open(my $ofh, '>', $file) or die "cannot write '$file' $!";
+ print $ofh @head, "$version - \n", @lines;
+ close($ofh) or die "cannot write '$file' $!";
+ return;
+ }
+ if($line =~ m/^$current - \w/) {
+ warn "Updating '$file'\n";
+ open(my $ofh, '>', $file) or die "cannot write '$file' $!";
+ print $ofh @head, "$version - \n", "\n", $line, @lines;
+ close($ofh) or die "cannot write '$file' $!";
+ return;
+ }
+ elsif($line =~ m/^$version(?: *- *)?$/) {
+ # TODO should just be checking for a general number+eol case?
+ die "$file probably needs to be reverted!";
+ }
}
else {
push(@head, $line);