Mercurial > dotfiles
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 342:f95ae07fb55a | 343:70e76c545606 |
|---|---|
| 1 #!/usr/bin/env python | |
| 2 import argparse | |
| 3 import os | |
| 4 import subprocess | |
| 5 import sys | |
| 6 | |
| 7 _MAP = { | |
| 8 'hg': '~/Programming/hg/crew', | |
| 9 'hgsubversion': '~/Programming/hg/hgsubversion', | |
| 10 'hg-git': '~/Programming/hg/hg-git', | |
| 11 } | |
| 12 | |
| 13 | |
| 14 def main(argv): | |
| 15 p = argparse.ArgumentParser('import patches') | |
| 16 p.add_argument('repo', type=str, nargs=1, | |
| 17 help='repo name to apply patches to') | |
| 18 args = p.parse_args(argv[1:]) | |
| 19 name, = args.repo | |
| 20 if name in _MAP: | |
| 21 repo = _MAP[name] | |
| 22 else: | |
| 23 c = [] | |
| 24 for n in _MAP: | |
| 25 if n.startswith(name): | |
| 26 c.append(n) | |
| 27 if not c: | |
| 28 print 'abort: no repo named %s' % name | |
| 29 sys.exit(1) | |
| 30 elif len(c) != 1: | |
| 31 print 'abort: ambiguous repo name %s matches %s' % ( | |
| 32 name, ', '.join(c)) | |
| 33 sys.exit(1) | |
| 34 repo = _MAP[c[0]] | |
| 35 hg = subprocess.Popen(['hg', '-R', repo, 'import', '--obsolete', '-'], | |
| 36 stdin=subprocess.PIPE) | |
| 37 hg.stdin.write(sys.stdin.read()) | |
| 38 hg.stdin.close() | |
| 39 hg.wait() | |
| 40 sys.exit(hg.returncode) | |
| 41 | |
| 42 | |
| 43 if __name__ == '__main__': | |
| 44 main(argv=sys.argv) |
