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
| | #!perl -w
use v5.10.1;
my $v = $ENV{VERSION} // die 'VERSION unset';
my $f = './lib/PublicInbox.pm';
if (-d ($ENV{GIT_DIR} // '.git') || -f '.git') {
chomp(my $gv = `git describe --match "v[0-9]*" HEAD`);
if ($? == 0) {
substr($gv, 0, 1, ''); # remove "v"
system(qw(git update-index -q --refresh));
if (my @n = `git diff-index --name-only HEAD --`) {
$gv .= '-dirty';
}
$v = $gv;
}
}
$v =~ tr/-/./;
if (-f $f && do $f && (eval('$PublicInbox::VERSION') // 'undef') eq $v) {
exit
}
my $tmp = "$f.tmp.$$";
open my $fh, '>', $tmp or die "open($tmp): $!";
print $fh <<EOM or die "print($tmp): $!";
# this file is generated by $0
package PublicInbox;
our \$VERSION = '$v';
1;
EOM
close $fh or die "close($tmp): $!";
rename($tmp, $f) or die "rename($tmp, $f): $!";
|