diff unixSoft/bin/hgimp @ 343:70e76c545606

hgimp: utility to make importing hg patches from mutt easier
author Augie Fackler <raf@durin42.com>
date Wed, 10 Sep 2014 14:52:33 -0400
parents
children 2ac43cd7bbf7
line wrap: on
line diff
new file mode 100755
--- /dev/null
+++ b/unixSoft/bin/hgimp
@@ -0,0 +1,44 @@
+#!/usr/bin/env python
+import argparse
+import os
+import subprocess
+import sys
+
+_MAP = {
+    'hg': '~/Programming/hg/crew',
+    'hgsubversion': '~/Programming/hg/hgsubversion',
+    'hg-git': '~/Programming/hg/hg-git',
+    }
+
+
+def main(argv):
+    p = argparse.ArgumentParser('import patches')
+    p.add_argument('repo', type=str, nargs=1,
+                   help='repo name to apply patches to')
+    args = p.parse_args(argv[1:])
+    name, = args.repo
+    if name in _MAP:
+        repo = _MAP[name]
+    else:
+        c = []
+        for n in _MAP:
+            if n.startswith(name):
+                c.append(n)
+        if not c:
+            print 'abort: no repo named %s' % name
+            sys.exit(1)
+        elif len(c) != 1:
+            print 'abort: ambiguous repo name %s matches %s' % (
+                name, ', '.join(c))
+            sys.exit(1)
+        repo = _MAP[c[0]]
+    hg = subprocess.Popen(['hg', '-R', repo, 'import', '--obsolete', '-'],
+                          stdin=subprocess.PIPE)
+    hg.stdin.write(sys.stdin.read())
+    hg.stdin.close()
+    hg.wait()
+    sys.exit(hg.returncode)
+
+
+if __name__ == '__main__':
+    main(argv=sys.argv)