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 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
#! /usr/bin/perl
use warnings;
use strict;
use integer;
use FindBin;
use lib $FindBin::RealBin;
use Def;
# This helper script automatically updates debram's version number in
# several files (the files are named in the following block). At the
# top of debian/changelog, it begins a new template entry. Example
# usage:
#
# $ update-ver 0.6.2
#
# See helper/update-date for further notes.
#
#
our $pat_ver = qr/(?<![.\d])\d+\.\d+\.\d+(?![\d])[a-z]?/;
our $date_dflt = "Thu, 01 Jan 1970 00:00:00 +0000";
my $warn_msg = "$0: cannot find version line in ";
my $ver;
@ARGV == 1
or die "usage: $0 version\n";
$ver = $ARGV[0];
chomp $ver;
$ver =~ /^$pat_ver$/
or die "usage: $0 version\n";
my $changelog_entry;
{
my $authe = "${Def::author} <${Def::email}>";
$changelog_entry = <<END;
${Def::out} ($ver) ${Def::dist}; urgency=${Def::urgency}
* ${Def::cl_entry_dflt}
-- $authe $date_dflt
END
}
open DT, '<', ${Def::debram_txt};
open FH, '<', ${Def::def_h};
open DL, '<', ${Def::descloc};
open CL, '<', ${Def::changelog};
my @dt = <DT>;
my @fh = <FH>;
my @dl = <DL>;
my @cl = <CL>;
close DT;
close FH;
close DL;
close CL;
$dt[8] =~ s/^(Version )$pat_ver(,)/$1$ver$2/
or warn "$warn_msg${Def::debram_txt}\n";
{
my $i = 0;
++$i until $i > $#fh || $fh[$i] =~ s/^(#define VERSION\s+")$pat_ver(")/$1$ver$2/;
$i <= $#fh or warn "$warn_msg${Def::def_h}\n";
}
{
my $i = 0;
++$i until $i > $#dl || $dl[$i] =~ /^DATA\s*$/;
++$i until $i > $#dl || $dl[$i] =~ /^The version number is\s*$/;
$i += 2;
$i <= $#dl && $dl[$i] =~ s/^( )(\S(?:.*?\S)??)\s*$/$1$ver\n/
or warn "$warn_msg${Def::descloc}\n";
}
unshift @cl, $changelog_entry;
open DT, '>', ${Def::debram_txt};
open FH, '>', ${Def::def_h};
open DL, '>', ${Def::descloc};
open CL, '>', ${Def::changelog};
print DT @dt;
print FH @fh;
print DL @dl;
print CL @cl;
close DT;
close FH;
close DL;
close CL;
|