File: update-ver

package info (click to toggle)
debram 1.0.3
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 2,796 kB
  • ctags: 437
  • sloc: perl: 2,953; ansic: 1,901; makefile: 169; sh: 14
file content (88 lines) | stat: -rwxr-xr-x 1,889 bytes parent folder | download | duplicates (7)
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;