debugshell: check ui.debugger for which debugger to use

This commit is contained in:
Sean Farley 2013-07-14 12:16:40 -05:00
parent 12aa25fc95
commit e9de00a5cf

View File

@ -1,6 +1,7 @@
# debugshell extension
"""a python shell with repo, changelog & manifest objects"""
import sys
import mercurial
import code
@ -27,7 +28,24 @@ def debugshell(ui, repo, **opts):
"using source: %s" % (repo.root,
mercurial.__path__[0])
pdb(ui, repo, bannermsg, **opts)
pdbmap = {
'pdb' : 'code',
'ipdb' : 'IPython'
}
debugger = ui.config("ui", "debugger")
if not debugger:
debugger = 'pdb'
# if IPython doesn't exist, fallback to code.interact
try:
__import__(pdbmap[debugger])
except ImportError:
ui.warn("%s debugger specified but %s module was not found\n"
% (debugger, pdbmap[debugger]))
debugger = 'pdb'
getattr(sys.modules[__name__], debugger)(ui, repo, bannermsg, **opts)
cmdtable = {
"debugshell|dbsh": (debugshell, [])