diff options
author | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2016-08-17 23:51:00 +0900 |
---|---|---|
committer | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2016-09-12 19:59:47 +0900 |
commit | ca5ad2d541b5a265ad59ab329980be6510f2787e (patch) | |
tree | 25a9519ed338496831a5d06e622db72dcb035994 /sphinx/setup_command.py | |
parent | fae9eb778446c44df0f0ad4173542f3cb97dccc1 (diff) | |
download | sphinx-git-ca5ad2d541b5a265ad59ab329980be6510f2787e.tar.gz |
#2695: better error handling for setup_command
Diffstat (limited to 'sphinx/setup_command.py')
-rw-r--r-- | sphinx/setup_command.py | 28 |
1 files changed, 9 insertions, 19 deletions
diff --git a/sphinx/setup_command.py b/sphinx/setup_command.py index 7df8bd6e8..0b2abb77c 100644 --- a/sphinx/setup_command.py +++ b/sphinx/setup_command.py @@ -15,15 +15,14 @@ from __future__ import print_function import sys import os -import traceback +from six import StringIO, string_types from distutils.cmd import Command from distutils.errors import DistutilsOptionError, DistutilsExecError -from six import StringIO, string_types - from sphinx.application import Sphinx -from sphinx.util.console import darkred, nocolor, color_terminal +from sphinx.cmdline import handle_exception +from sphinx.util.console import nocolor, color_terminal from sphinx.util.osutil import abspath @@ -99,6 +98,8 @@ class BuildDoc(Command): self.config_dir = None self.link_index = False self.copyright = '' + self.verbosity = 0 + self.traceback = False def _guess_source_dir(self): for guess in ('doc', 'docs'): @@ -173,21 +174,10 @@ class BuildDoc(Command): if app.statuscode: raise DistutilsExecError( 'caused by %s builder.' % app.builder.name) - except Exception as err: - if self.pdb: - import pdb - print(darkred('Exception occurred while building, starting debugger:'), - file=sys.stderr) - traceback.print_exc() - pdb.post_mortem(sys.exc_info()[2]) - else: - from docutils.utils import SystemMessage - if isinstance(err, SystemMessage): - print(darkred('reST markup error:'), file=sys.stderr) - print(err.args[0].encode('ascii', 'backslashreplace'), - file=sys.stderr) - else: - raise + except Exception as exc: + handle_exception(app, self, exc, sys.stderr) + if not self.pdb: + raise SystemExit(1) if self.link_index: src = app.config.master_doc + app.builder.out_suffix |