Mercurial > hg
changeset 19773:51799a965446
debugshell: check ui.debugger for which debugger to use
author | Sean Farley <sean.michael.farley@gmail.com> |
---|---|
date | Sun, 14 Jul 2013 12:16:40 -0500 |
parents | 6ccec36a1fd9 |
children | 7805cb8030e0 |
files | contrib/debugshell.py |
diffstat | 1 files changed, 19 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/contrib/debugshell.py Sun Jul 14 12:02:36 2013 -0500 +++ b/contrib/debugshell.py Sun Jul 14 12:16:40 2013 -0500 @@ -1,6 +1,7 @@ # debugshell extension """a python shell with repo, changelog & manifest objects""" +import sys import mercurial import code @@ -27,7 +28,24 @@ "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, [])