4 use warnings FATAL => 'all';
8 my @parts = split /\./, shift;
11 push @parts, $dec =~ /(\d{1,3})/g;
19 chomp(my $LATEST = qx(grep '^[0-9]' Changes | head -1 | awk '{print \$1}'));
21 my @parts = version_parts($LATEST);
23 my $OLD_DECIMAL = sprintf('%i.%03i%03i', @parts);
25 my %bump_part = (major => 0, minor => 1, bugfix => 2);
27 my @new_parts = @parts;
29 my $bump_this = $bump_part{$ARGV[0]||'bugfix'};
31 if (defined $bump_this) {
32 $new_parts[$bump_this]++;
33 $new_parts[$_] = 0 for ($bump_this+1 .. $#new_parts);
35 elsif ($ARGV[0] =~ /^[0-9]+(?:\.[0-9]+)*$/) {
36 @new_parts = version_parts($ARGV[0]);
39 die "no idea which part to bump - $ARGV[0] means nothing to me"
42 my $NEW_DECIMAL = sprintf('%i.%03i%03i', @new_parts);
44 warn "Bumping $OLD_DECIMAL -> $NEW_DECIMAL\n";
45 my $vstring = join('.', @parts);
52 unless -f && /\.pod$|\.pm$/;
54 open my $fh, '<', $file
55 or die "can't open $file: $!";
56 my $content = do { local $/; <$fh> };
60 ( \$VERSION \s* = \s* )
61 (['"]?) v?([.0-9]+) \2
68 die "unable to bump version number in $file from $OLD_DECIMAL, found $3\n"
69 if $3 ne $OLD_DECIMAL && $3 ne $vstring;
70 $1 . "'" . $NEW_DECIMAL . "'" . $4 . (
76 $files{$file} = $content;
80 for my $file (sort keys %files) {
81 warn " updating $file\n";
82 open my $fh, '>', $file
83 or die "can't open $file: $!";
84 print { $fh } $files{$file};