]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blame - debian/scripts/misc/insert-ubuntu-changes
UBUNTU: d/s/m/insert-ubuntu-changes: <stop at> should not be included in the changelog
[mirror_ubuntu-artful-kernel.git] / debian / scripts / misc / insert-ubuntu-changes
CommitLineData
fef4fb4a
LO
1#!/usr/bin/perl
2
3if ($#ARGV != 2) {
4 die "Usage: $0 <changelog> <stop at> <start at>\n";
5}
6my ($changelog, $end, $start) = @ARGV;
7
0f0c2f05
MHC
8$end =~ s/^\D+//;
9$start =~ s/^\D+//;
10
11sub version_cmp($$) {
12 my @a = split(/[\.-]+/, $_[0]);
13 my @b = split(/[\.-]+/, $_[1]);
14 for (my $i = 1;; $i++) {
15 if (!defined $a[$i]) {
16 if (!defined $b[$i]) {
17 return 0;
18 }
19 return -1;
20 }
21 if (!defined $b[$i]) {
22 return 1;
23 }
24 if ($a[$i] < $b[$i]) {
25 return -1;
26 }
27 if ($a[$i] > $b[$i]) {
28 return 1;
29 }
30 }
31}
fef4fb4a
LO
32
33my @changes = ();
34my $output = 0;
35open(CHG, "<debian.master/changelog") ||
36 open(CHG, "<debian/changelog") ||
37 die "$0: debian/changelog: open failed - $!\n";
38while (<CHG>) {
0f0c2f05 39 if (/^\S+\s+\((.*)\)/) {
50e09b6f 40 if (version_cmp($1, $end) <= 0) {
fef4fb4a
LO
41 last;
42 }
0f0c2f05 43 if ($1 eq $start) {
fef4fb4a
LO
44 $output = 1;
45 }
46 if ($output) {
47 push(@changes, "\n [ Ubuntu: $1 ]\n\n");
48 next;
49 }
50 }
51 next if ($output == 0);
52
53 next if (/^\s*$/);
54 next if (/^\s--/);
55 next if (/^\s\s[^\*\s]/);
56
57 push(@changes, $_);
58}
59close(CHG);
60
61open(CHANGELOG, "< $changelog") or die "Cannot open changelog";
62open(NEW, "> $changelog.new") or die "Cannot open new changelog";
63
64$printed = 3;
65while (<CHANGELOG>) {
66 if (/^ CHANGELOG: /) {
67 $printed--;
68 print NEW;
69 if ($printed == 0) {
70 print NEW @changes;
71 }
72 next;
73 }
74 print NEW;
75}
76
77close(NEW);
78close(CHANGELOG);
79
80rename("$changelog.new", "$changelog");