summaryrefslogtreecommitdiffstats
path: root/apps/patchwork/bin/update-patchwork-status.py
diff options
context:
space:
mode:
Diffstat (limited to 'apps/patchwork/bin/update-patchwork-status.py')
-rwxr-xr-xapps/patchwork/bin/update-patchwork-status.py70
1 files changed, 70 insertions, 0 deletions
diff --git a/apps/patchwork/bin/update-patchwork-status.py b/apps/patchwork/bin/update-patchwork-status.py
new file mode 100755
index 0000000..c774d63
--- /dev/null
+++ b/apps/patchwork/bin/update-patchwork-status.py
@@ -0,0 +1,70 @@
+#!/usr/bin/env python
+#
+# Patchwork - automated patch tracking system
+# Copyright (C) 2008 Jeremy Kerr <jk@ozlabs.org>
+#
+# This file is part of the Patchwork package.
+#
+# Patchwork 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.
+#
+# Patchwork 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 Patchwork; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+import sys
+import subprocess
+from optparse import OptionParser
+
+def commits(options, revlist):
+ cmd = ['git-rev-list', revlist]
+ proc = subprocess.Popen(cmd, stdout = subprocess.PIPE, cwd = options.repodir)
+
+ revs = []
+
+ for line in proc.stdout.readlines():
+ revs.append(line.strip())
+
+ return revs
+
+def commit(options, rev):
+ cmd = ['git-diff', '%(rev)s^..%(rev)s' % {'rev': rev}]
+ proc = subprocess.Popen(cmd, stdout = subprocess.PIPE, cwd = options.repodir)
+
+ buf = proc.communicate()[0]
+
+ return buf
+
+
+def main(args):
+ parser = OptionParser(usage = '%prog [options] revspec')
+ parser.add_option("-p", "--project", dest = "project", action = 'store',
+ help="use project PROJECT", metavar="PROJECT")
+ parser.add_option("-d", "--dir", dest = "repodir", action = 'store',
+ help="use git repo in DIR", metavar="DIR")
+
+ (options, args) = parser.parse_args(args[1:])
+
+ if len(args) != 1:
+ parser.error("incorrect number of arguments")
+
+ revspec = args[0]
+ revs = commits(options, revspec)
+
+ for rev in revs:
+ print rev
+ print commit(options, rev)
+
+
+if __name__ == '__main__':
+ sys.exit(main(sys.argv))
+
+