Mercurial > dotfiles
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)