/
bump_version
74 lines (66 loc) · 2.14 KB
/
bump_version
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/usr/bin/env perl
use 5.010;
use strict;
use warnings FATAL => 'all';
use autodie;
use English qw( -no_match_vars );
use IPC::Cmd;
chomp( my $LATEST =
qx(grep '^[0-9]' r2/Changes | head -1 | awk '{print \$1}') );
warn "Bumping -> $LATEST\n";
my ( $major, $minor, $micro ) = ( $LATEST =~ m/\A (\d+) [.] (\d\d\d) [_]? (\d\d\d) /xms );
if ( not defined $micro ) {
die "bump_version Cannot handle new version number: $LATEST";
}
$major += 0;
$micro += 0;
$minor += 0;
my @versioned_files = split /\n/xms, <<'END_OF_LIST';
r2/html/lib/Marpa/R2/HTML/Callback.pm
r2/html/lib/Marpa/R2/HTML.pm
r2/lib/Marpa/R2/Grammar.pm
r2/lib/Marpa/R2/Scanless.pm
r2/lib/Marpa/R2/Stuifzand.pm
r2/lib/Marpa/R2/Internal.pm
r2/lib/Marpa/R2/Recognizer.pm
r2/lib/Marpa/R2/Value.pm
r2/lib/Marpa/R2/Thin/Trace.pm
r2/lib/Marpa/R2.pm
END_OF_LIST
for my $versioned_file (@versioned_files) {
say STDERR $versioned_file;
my $file = do { local ( @ARGV, $/ ) = ($versioned_file); <> };
$file =~ s/(\$VERSION \s+ = \s+ ['] ) \d+ [.] \d\d\d [_]? \d\d\d /$1${LATEST}/xms;
open my $out, '>', $versioned_file;
print $out $file;
} ## end for my $versioned_file (@versioned_files)
for my $configure_ac_file (
qw(
r2/libmarpa/dev/dist/configure.ac
r2/libmarpa/dev/doc_dist/configure.ac
)
)
{
say STDERR $configure_ac_file;
my $file = do { local ( @ARGV, $/ ) = ($configure_ac_file); <> };
$file =~ s{
( m4_define [(] [\[] marpa_major_version [\]] [,] \s* [\[] ) \d+ ( [\]] )
}{$1${major}$2}xms;
$file =~ s{
( m4_define [(] [\[] marpa_minor_version [\]] [,] \s* [\[] ) \d+ ( [\]] )
}{$1${minor}$2}xms;
$file =~ s{
( m4_define [(] [\[] marpa_micro_version [\]] [,] \s* [\[] ) \d+ ( [\]] )
}{$1${micro}$2}xms;
open my $out, '>', $configure_ac_file;
print $out $file;
} ## end for my $configure_ac_file ( qw( r2/libmarpa/dev/dist/configure.ac...))
chdir 'r2';
die qq{"perl Build.PL" failed: $!}
if not IPC::Cmd::run(
command => [ $EXECUTABLE_NAME, 'Build.PL' ],
verbose => 1
);
die qq{"./Build distmeta" failed: $!}
if
not IPC::Cmd::run( command => [ './Build', 'distmeta' ], verbose => 1 );