# HG changeset patch
# User David Douard <david.douard@logilab.fr>
# Date 1409568136 -7200
# Mon Sep 01 12:42:16 2014 +0200
# Node ID 62386f95f6a55fc60d27cafd483867d4592959e2
# Parent f07a5a5b3f4afb0274a201970549c43b6c620a3c
[graph] More explicit error message if dot is not found (closes #253516)
# User David Douard <david.douard@logilab.fr>
# Date 1409568136 -7200
# Mon Sep 01 12:42:16 2014 +0200
# Node ID 62386f95f6a55fc60d27cafd483867d4592959e2
# Parent f07a5a5b3f4afb0274a201970549c43b6c620a3c
[graph] More explicit error message if dot is not found (closes #253516)
@@ -27,10 +27,11 @@
1 import os.path as osp 2 import os 3 import sys 4 import tempfile 5 import codecs 6 +import errno 7 8 def escape(value): 9 """Make <value> usable in a dot file.""" 10 lines = [line.replace('"', '\\"') for line in value.split('\n')] 11 data = '\\l'.join(lines)
@@ -112,17 +113,22 @@
12 if target != 'dot': 13 if sys.platform == 'win32': 14 use_shell = True 15 else: 16 use_shell = False 17 - if mapfile: 18 - subprocess.call([self.renderer, '-Tcmapx', '-o', mapfile, '-T', target, dot_sourcepath, '-o', outputfile], 19 - shell=use_shell) 20 - else: 21 - subprocess.call([self.renderer, '-T', target, 22 - dot_sourcepath, '-o', outputfile], 23 - shell=use_shell) 24 + try: 25 + if mapfile: 26 + subprocess.call([self.renderer, '-Tcmapx', '-o', mapfile, '-T', target, dot_sourcepath, '-o', outputfile], 27 + shell=use_shell) 28 + else: 29 + subprocess.call([self.renderer, '-T', target, 30 + dot_sourcepath, '-o', outputfile], 31 + shell=use_shell) 32 + except OSError as e: 33 + if e.errno == errno.ENOENT: 34 + e.strerror = 'File not found: {0}'.format(self.renderer) 35 + raise 36 os.unlink(dot_sourcepath) 37 return outputfile 38 39 def emit(self, line): 40 """Adds <line> to final output."""