UBUNTU: add new scripting to handle buglinks in rebases
authorAndy Whitcroft <apw@canonical.com>
Mon, 16 Jan 2012 10:20:05 +0000 (10:20 +0000)
committerLeann Ogasawara <leann.ogasawara@canonical.com>
Mon, 2 Apr 2012 20:17:30 +0000 (13:17 -0700)
Signed-off-by: Andy Whitcroft <apw@canonical.com>

debian/scripts/misc/insert-mainline-changes [new file with mode: 0755]

diff --git a/debian/scripts/misc/insert-mainline-changes b/debian/scripts/misc/insert-mainline-changes
new file mode 100755 (executable)
index 0000000..cc71ea1
--- /dev/null
@@ -0,0 +1,41 @@
+#!/usr/bin/perl
+
+if ($#ARGV != 2) {
+       die "Usage: $0 <changelog> <to> <range>\n";
+}
+my ($changelog, $to, $range) = @ARGV;
+
+my @changes = ();
+
+push(@changes, "\n");
+push(@changes, "  [ Upstream Kernel Changes ]\n\n");
+push(@changes, "  * rebase to $to\n");
+
+open(LOG, "git log '$range'|") || die "$0: git log failed: - $!\n";
+while (<LOG>) {
+       if (m@BugLink: .*launchpad.net/.*/([0-9]+)\s$@) {
+               push(@changes, "    - LP: #$1\n");
+       }
+}
+close(LOG);
+
+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");