# HG changeset patch # User Augie Fackler # Date 1410375153 14400 # Node ID 70e76c545606c50231160b90da8b4023d5731b91 # Parent f95ae07fb55acc920e5269d87b7e776609f6d7de hgimp: utility to make importing hg patches from mutt easier diff --git a/unixSoft/bin/hgimp b/unixSoft/bin/hgimp 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)