comparison mercurial/commands.py @ 1453:6fbb13b7a59f

get command defaults from hgrc
author TK Soh <teekaysoh@yahoo.com>
date Wed, 26 Oct 2005 16:10:36 -0700
parents 508a3f559553
children 407bd229f003
comparison
equal deleted inserted replaced
1452:f1755621cb7d 1453:6fbb13b7a59f
2415 sys.exit(dispatch(sys.argv[1:])) 2415 sys.exit(dispatch(sys.argv[1:]))
2416 2416
2417 class ParseError(Exception): 2417 class ParseError(Exception):
2418 """Exception raised on errors in parsing the command line.""" 2418 """Exception raised on errors in parsing the command line."""
2419 2419
2420 def parse(args): 2420 def parse(ui, args):
2421 options = {} 2421 options = {}
2422 cmdoptions = {} 2422 cmdoptions = {}
2423 2423
2424 try: 2424 try:
2425 args = fancyopts.fancyopts(args, globalopts, options) 2425 args = fancyopts.fancyopts(args, globalopts, options)
2426 except fancyopts.getopt.GetoptError, inst: 2426 except fancyopts.getopt.GetoptError, inst:
2427 raise ParseError(None, inst) 2427 raise ParseError(None, inst)
2428 2428
2429 if args: 2429 if args:
2430 cmd, args = args[0], args[1:] 2430 cmd, args = args[0], args[1:]
2431 defaults = ui.config("defaults", cmd)
2432 if defaults:
2433 # reparse with command defaults added
2434 args = [cmd] + defaults.split() + args
2435 try:
2436 args = fancyopts.fancyopts(args, globalopts, options)
2437 except fancyopts.getopt.GetoptError, inst:
2438 raise ParseError(None, inst)
2439
2440 cmd, args = args[0], args[1:]
2441
2431 i = find(cmd)[1] 2442 i = find(cmd)[1]
2432 c = list(i[1]) 2443 c = list(i[1])
2433 else: 2444 else:
2434 cmd = None 2445 cmd = None
2435 c = [] 2446 c = []
2492 if t in table: 2503 if t in table:
2493 u.warn(_("module %s overrides %s\n") % (x.__name__, t)) 2504 u.warn(_("module %s overrides %s\n") % (x.__name__, t))
2494 table.update(cmdtable) 2505 table.update(cmdtable)
2495 2506
2496 try: 2507 try:
2497 cmd, func, args, options, cmdoptions = parse(args) 2508 cmd, func, args, options, cmdoptions = parse(u, args)
2498 except ParseError, inst: 2509 except ParseError, inst:
2499 if inst.args[0]: 2510 if inst.args[0]:
2500 u.warn(_("hg %s: %s\n") % (inst.args[0], inst.args[1])) 2511 u.warn(_("hg %s: %s\n") % (inst.args[0], inst.args[1]))
2501 help_(u, inst.args[0]) 2512 help_(u, inst.args[0])
2502 else: 2513 else: