comparison mercurial/commands.py @ 5178:18a9fbb5cd78

dispatch: move command dispatching into its own module - move command dispatching functions from commands and cmdutil to dispatch - change findcmd to take a table argument - remove circular import of commands in cmdutil - privatize helper functions in dispatch
author Matt Mackall <mpm@selenic.com>
date Wed, 15 Aug 2007 16:55:13 -0500
parents 92236732d5a1
children 60acf1432ee0
comparison
equal deleted inserted replaced
5177:92236732d5a1 5178:18a9fbb5cd78
7 7
8 import demandimport; demandimport.enable() 8 import demandimport; demandimport.enable()
9 from node import * 9 from node import *
10 from i18n import _ 10 from i18n import _
11 import os, re, sys, urllib 11 import os, re, sys, urllib
12 import ui, hg, util, revlog, bundlerepo, extensions 12 import hg, util, revlog, bundlerepo, extensions
13 import difflib, patch, time, help, mdiff, tempfile 13 import difflib, patch, time, help, mdiff, tempfile
14 import errno, version, socket 14 import errno, version, socket
15 import archival, changegroup, cmdutil, hgweb.server, sshserver 15 import archival, changegroup, cmdutil, hgweb.server, sshserver
16 16
17 # Commands start here, listed alphabetically 17 # Commands start here, listed alphabetically
660 660
661 if opts['options']: 661 if opts['options']:
662 options = [] 662 options = []
663 otables = [globalopts] 663 otables = [globalopts]
664 if cmd: 664 if cmd:
665 aliases, entry = cmdutil.findcmd(ui, cmd) 665 aliases, entry = cmdutil.findcmd(ui, cmd, table)
666 otables.append(entry[1]) 666 otables.append(entry[1])
667 for t in otables: 667 for t in otables:
668 for o in t: 668 for o in t:
669 if o[0]: 669 if o[0]:
670 options.append('-%s' % o[0]) 670 options.append('-%s' % o[0])
671 options.append('--%s' % o[1]) 671 options.append('--%s' % o[1])
672 ui.write("%s\n" % "\n".join(options)) 672 ui.write("%s\n" % "\n".join(options))
673 return 673 return
674 674
675 clist = cmdutil.findpossible(ui, cmd).keys() 675 clist = cmdutil.findpossible(ui, cmd, table).keys()
676 clist.sort() 676 clist.sort()
677 ui.write("%s\n" % "\n".join(clist)) 677 ui.write("%s\n" % "\n".join(clist))
678 678
679 def debugrebuildstate(ui, repo, rev=""): 679 def debugrebuildstate(ui, repo, rev=""):
680 """rebuild the dirstate as it would look like for the given revision""" 680 """rebuild the dirstate as it would look like for the given revision"""
1305 1305
1306 def helpcmd(name): 1306 def helpcmd(name):
1307 if with_version: 1307 if with_version:
1308 version_(ui) 1308 version_(ui)
1309 ui.write('\n') 1309 ui.write('\n')
1310 aliases, i = cmdutil.findcmd(ui, name) 1310 aliases, i = cmdutil.findcmd(ui, name, table)
1311 # synopsis 1311 # synopsis
1312 ui.write("%s\n\n" % i[2]) 1312 ui.write("%s\n\n" % i[2])
1313 1313
1314 # description 1314 # description
1315 doc = i[0].__doc__ 1315 doc = i[0].__doc__
3132 extensions.commandtable = table 3132 extensions.commandtable = table
3133 3133
3134 norepo = ("clone init version help debugancestor debugcomplete debugdata" 3134 norepo = ("clone init version help debugancestor debugcomplete debugdata"
3135 " debugindex debugindexdot debugdate debuginstall") 3135 " debugindex debugindexdot debugdate debuginstall")
3136 optionalrepo = ("paths serve showconfig") 3136 optionalrepo = ("paths serve showconfig")
3137
3138 def dispatch(args):
3139 try:
3140 u = ui.ui(traceback='--traceback' in args)
3141 except util.Abort, inst:
3142 sys.stderr.write(_("abort: %s\n") % inst)
3143 return -1
3144 return cmdutil.runcatch(u, args)
3145
3146 def run():
3147 sys.exit(dispatch(sys.argv[1:]))