]> piware.de Git - bin.git/commitdiff
add newscommit
authormartin@piware.de <>
Thu, 15 Apr 2010 09:27:23 +0000 (11:27 +0200)
committermartin@piware.de <>
Thu, 15 Apr 2010 09:27:23 +0000 (11:27 +0200)
cleanpg
newscommit [new file with mode: 0755]

diff --git a/cleanpg b/cleanpg
index e238f183d968301b268c51e5aa3aa6919edcae0b..3719c345cc14657c43852ce6524d71e4d7043451 100755 (executable)
--- a/cleanpg
+++ b/cleanpg
@@ -5,4 +5,4 @@ for v in 7.4 8.0 8.1 8.2 8.3; do
     [ -x $i ] && $SUDO $i stop
 done
 $SUDO killall pg_autovacuum postmaster postgres
-$SUDO rm -rf /etc/postgresql /var/lib/postgresql/ /var/log/postgresql/ /tmp/postgresql-testsuite/ /var/run/postgresql/*
+$SUDO rm -rf /etc/postgresql /var/lib/postgresql/ /var/log/postgresql/* /tmp/postgresql-testsuite/ /var/run/postgresql/*
diff --git a/newscommit b/newscommit
new file mode 100755 (executable)
index 0000000..b1d8b51
--- /dev/null
@@ -0,0 +1,46 @@
+#!/usr/bin/python
+
+import subprocess, re, sys
+
+lpbugs_re = re.compile(r'lp: #([0-9, ]+)', re.I)
+
+bzr = subprocess.Popen(['bzr', 'diff', 'NEWS'], stdout=subprocess.PIPE)
+raw_msg = bzr.communicate()[0].strip()
+if bzr.returncode != 1:
+    print >> sys.stderr, 'bzr diff NEWS failed'
+    sys.exit(1)
+
+# parse/format message
+msg = ''
+for l in raw_msg.splitlines():
+    if not l.startswith('+ '):
+       continue
+    if msg:
+       msg += ' '
+    msg += l[2:].strip()
+
+if msg.startswith('-'):
+    msg = msg[1:].strip()
+
+print '-- commit message: --'
+print msg
+print '---'
+
+if not msg:
+    print >> sys.stderr, 'No message in NEWS, aborting'
+    sys.exit(1)
+
+# parse Launchpad bugs
+lpbugs = []
+for b_grp in lpbugs_re.finditer(msg):
+    for b in b_grp.group(1).split(','):
+       lpbugs.append(b.strip())
+print 'Fixed LP bugs:', ' '.join(lpbugs)
+
+# commit
+argv = ['bzr', 'commit', '-m', msg]
+for b in lpbugs:
+    argv += ['--fixes', 'lp:' + b]
+
+sys.exit(subprocess.call(argv))
+