view unixSoft/bin/hgimp @ 378:20e47bc8eea9

hgrc: disable hg-git and hgsubversion It hasn't been common for me to use either of these extensions for some time, so just drop both of them from the main hgrc. Instead I'll enable them as-needed in individual repositories.
author Augie Fackler <durin42@gmail.com>
date Thu, 09 Jun 2011 20:20:04 -0500
parents 2ac43cd7bbf7
children 24d75bc4a3a1
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',
    'topics': '~/Programming/hg/topic',
    }


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)