diff options
author | Emile Anclin <devnull@localhost> | 2015-12-08 12:25:14 +0200 |
---|---|---|
committer | Emile Anclin <devnull@localhost> | 2015-12-08 12:25:14 +0200 |
commit | cb41aa237e4c637da2a9be4e44823d036e1e6430 (patch) | |
tree | 6ce3299a2e6d7d7ff3d74e48c26fd6d492dc1680 /pylint | |
parent | 3ca41ff239dc11404af65ca4a3060b92d87668ba (diff) | |
download | pylint-cb41aa237e4c637da2a9be4e44823d036e1e6430.tar.gz |
Give a nice error message when Graphviz is not installed. Closes issue #168.
Diffstat (limited to 'pylint')
-rw-r--r-- | pylint/pyreverse/main.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/pylint/pyreverse/main.py b/pylint/pyreverse/main.py index 0e7f87e..e56c9dd 100644 --- a/pylint/pyreverse/main.py +++ b/pylint/pyreverse/main.py @@ -21,6 +21,7 @@ from __future__ import print_function import os +import subprocess import sys from pylint.config import ConfigurationMixIn @@ -91,6 +92,19 @@ this disables -f values")), #( ('quiet', #dict(help='run quietly', action='store_true', short='q')), ) +def _check_graphviz_available(output_format): + """check if we need graphviz for different output format""" + try: + subprocess.call(['dot', '-V'], stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + except OSError: + print("The output format '%s' is currently not available.\n" + "Please install 'Graphviz' to have other output formats " + "than 'dot' or 'vcg'." % output_format) + sys.exit(32) + + + class Run(ConfigurationMixIn): """base class providing common behaviour for pyreverse commands""" @@ -100,6 +114,9 @@ class Run(ConfigurationMixIn): ConfigurationMixIn.__init__(self, usage=__doc__) insert_default_options() args = self.load_command_line_configuration() + if self.config.output_format not in ('dot', 'vcg'): + _check_graphviz_available(self.config.output_format) + sys.exit(self.run(args)) def run(self, args): |