summaryrefslogtreecommitdiff
path: root/debian/scripts/misc/insert-ubuntu-changes
blob: 61b1faec687b31d0e1ccd5fe0bb9ab0e371c2b69 (plain)
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
#!/usr/bin/perl

if ($#ARGV != 2) {
	die "Usage: $0 <changelog> <stop at> <start at>\n";
}
my ($changelog, $end, $start) = @ARGV;

$end =~ s/.*\.//;
$start =~ s/.*\.//;

my @changes = ();
my $output = 0;
open(CHG, "<debian.linaro/changelog") ||
	open(CHG, "<debian/changelog") ||
	die "$0: debian/changelog: open failed - $!\n";
while (<CHG>) {
	if (/^\S+\s+\((.*\.(\d+))\)/) {
		if ($2 <= $end) {
			last;
		}
		if ($2 == $start) {
			$output = 1;
		}
		if ($output) {
			push(@changes, "\n  [ Ubuntu: $1 ]\n\n");
			next;
		}
	}
	next if ($output == 0);

	next if (/^\s*$/);
	next if (/^\s--/);
	next if (/^\s\s[^\*\s]/);

	push(@changes, $_);
}
close(CHG);

open(CHANGELOG, "< $changelog") or die "Cannot open changelog";
open(NEW, "> $changelog.new") or die "Cannot open new changelog";

$printed = 3;
while (<CHANGELOG>) {
	if (/^  CHANGELOG: /) {
		$printed--;
		print NEW;
		if ($printed == 0) {
			print NEW @changes;
		}
		next;
	}
	print NEW;
}

close(NEW);
close(CHANGELOG);

rename("$changelog.new", "$changelog");