Commit | Line | Data |
253d7c99 |
1 | #!/usr/bin/env perl |
2 | |
253d7c99 |
3 | use strict; |
4 | use warnings FATAL => 'all'; |
5 | use autodie; |
6 | |
7 | chomp(my $LATEST = qx(grep '^[0-9]' Changes | head -1 | awk '{print \$1}')); |
8 | |
9 | my @parts = split /\./, $LATEST; |
7ed7eba7 |
10 | if (@parts == 2) { |
11 | @parts[1,2] = $parts[1] =~ /(\d{1,3})(\d{1,3})/; |
12 | } |
253d7c99 |
13 | |
14 | my $OLD_DECIMAL = sprintf('%i.%03i%03i', @parts); |
15 | |
16 | my %bump_part = (major => 0, minor => 1, bugfix => 2); |
17 | |
5d5bb71d |
18 | my $bump_this = $bump_part{$ARGV[0]||'bugfix'}; |
19 | |
20 | die "no idea which part to bump - $ARGV[0] means nothing to me" |
21 | unless defined($bump_this); |
253d7c99 |
22 | |
23 | my @new_parts = @parts; |
24 | |
25 | $new_parts[$bump_this]++; |
7ed7eba7 |
26 | $new_parts[$_] = 0 for ($bump_this+1 .. 2); |
253d7c99 |
27 | |
28 | my $NEW_DECIMAL = sprintf('%i.%03i%03i', @new_parts); |
29 | |
30 | warn "Bumping $OLD_DECIMAL -> $NEW_DECIMAL\n"; |
31 | |
7ed7eba7 |
32 | for my $PM_FILE (qw( |
33 | lib/Moo.pm |
34 | lib/Moo/Role.pm |
35 | lib/Sub/Defer.pm |
36 | lib/Sub/Quote.pm |
37 | )) { |
38 | my $file = do { local (@ARGV, $/) = ($PM_FILE); <> }; |
253d7c99 |
39 | |
7ed7eba7 |
40 | $file =~ s/(?<=\$VERSION = ')${\quotemeta $OLD_DECIMAL}/${NEW_DECIMAL}/ |
41 | or die "unable to bump version number in $PM_FILE"; |
253d7c99 |
42 | |
7ed7eba7 |
43 | open my $out, '>', $PM_FILE; |
253d7c99 |
44 | |
7ed7eba7 |
45 | print $out $file; |
46 | } |