view unixSoft/bin/hgimp @ 362:6dd0f2587d74

hgrc: swap remotebookmark entries in sl with topics I've stopped tinkering with remotebookmarks for now, but topics feel like they belong here. Giving it a shot.
author Augie Fackler <raf@durin42.com>
date Fri, 05 Jun 2015 15:10:50 -0400
parents 70e76c545606
children 2ac43cd7bbf7
line wrap: on
line source

#!/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)