[GEDI] [PATCH v4 06/31] python: add commit-per-subsystem.py
Vladimir Sementsov-Ogievskiy
vsementsov at virtuozzo.com
Tue Oct 1 15:52:54 UTC 2019
Add script to automatically commit tree-wide changes per-subsystem.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov at virtuozzo.com>
---
CC: kwolf at redhat.com
CC: mreitz at redhat.com
CC: jsnow at redhat.com
CC: fam at euphon.net
CC: sw at weilnetz.de
CC: codyprime at gmail.com
CC: marcandre.lureau at redhat.com
CC: pbonzini at redhat.com
CC: groug at kaod.org
CC: sundeep.lkml at gmail.com
CC: peter.maydell at linaro.org
CC: stefanha at redhat.com
CC: pburton at wavecomp.com
CC: arikalo at wavecomp.com
CC: berrange at redhat.com
CC: ehabkost at redhat.com
CC: david at gibson.dropbear.id.au
CC: clg at kaod.org
CC: mst at redhat.com
CC: marcel.apfelbaum at gmail.com
CC: mark.cave-ayland at ilande.co.uk
CC: yuval.shaia at oracle.com
CC: cohuck at redhat.com
CC: farman at linux.ibm.com
CC: rth at twiddle.net
CC: david at redhat.com
CC: pasic at linux.ibm.com
CC: borntraeger at de.ibm.com
CC: kraxel at redhat.com
CC: alex.williamson at redhat.com
CC: andrew at aj.id.au
CC: joel at jms.id.au
CC: eblake at redhat.com
CC: armbru at redhat.com
CC: mdroth at linux.vnet.ibm.com
CC: quintela at redhat.com
CC: dgilbert at redhat.com
CC: jasowang at redhat.com
CC: qemu-block at nongnu.org
CC: integration at gluster.org
CC: qemu-arm at nongnu.org
CC: qemu-ppc at nongnu.org
CC: qemu-s390x at nongnu.org
python/commit-per-subsystem.py | 69 ++++++++++++++++++++++++++++++++++
1 file changed, 69 insertions(+)
create mode 100755 python/commit-per-subsystem.py
diff --git a/python/commit-per-subsystem.py b/python/commit-per-subsystem.py
new file mode 100755
index 0000000000..d8442d9ea3
--- /dev/null
+++ b/python/commit-per-subsystem.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+#
+# Copyright (c) 2019 Virtuozzo International GmbH
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+
+import subprocess
+import sys
+
+
+def git_add(pattern):
+ subprocess.run(['git', 'add', pattern])
+
+
+def git_commit(msg):
+ subprocess.run(['git', 'commit', '-m', msg], capture_output=True)
+
+
+maintainers = sys.argv[1]
+message = sys.argv[2].strip()
+
+subsystem = None
+
+shortnames = {
+ 'Block layer core': 'block',
+ 'ARM cores': 'arm',
+ 'Network Block Device (NBD)': 'nbd',
+ 'Command line option argument parsing': 'cmdline',
+ 'Character device backends': 'chardev',
+ 'S390 general architecture support': 's390'
+}
+
+
+def commit():
+ if subsystem:
+ msg = subsystem
+ if msg in shortnames:
+ msg = shortnames[msg]
+ msg += ': ' + message
+ git_commit(msg)
+
+
+with open(maintainers) as f:
+ for line in f:
+ line = line.rstrip()
+ if not line:
+ continue
+ if len(line) >= 2 and line[1] == ':':
+ if line[0] == 'F' and line[3:] not in ['*', '*/']:
+ git_add(line[3:])
+ else:
+ # new subsystem start
+ commit()
+
+ subsystem = line
+
+commit()
--
2.21.0
More information about the integration
mailing list