tools: Warning about tool beiing installed but failed to run.

idf_tool.py runs "<tool> --version" which returns the error message but it is not used
This improves the error printing.
This commit is contained in:
Marek Fiala 2021-04-12 10:06:56 +02:00
parent c8d15588e5
commit 40b7ea1f95

View File

@ -474,8 +474,8 @@ class IDFTool(object):
# tool is not on the path
raise ToolNotFound('Tool {} not found'.format(self.name))
except subprocess.CalledProcessError as e:
raise ToolExecError('Command {} has returned non-zero exit code ({})\n'.format(
' '.join(self._current_options.version_cmd), e.returncode))
raise ToolExecError('returned non-zero exit code ({}) with error message:\n{}'.format(
e.returncode, e.stderr.decode('utf-8',errors='ignore'))) # type: ignore
in_str = version_cmd_result.decode("utf-8")
match = re.search(self._current_options.version_regex, in_str)
@ -526,8 +526,9 @@ class IDFTool(object):
except ToolNotFound:
# not in PATH
pass
except ToolExecError:
warn('tool {} found in path, but failed to run'.format(self.name))
except ToolExecError as e:
warn('tool {} found in path, but {}'.format(
self.name, e))
else:
self.version_in_path = ver_str
@ -545,9 +546,9 @@ class IDFTool(object):
except ToolNotFound:
warn('directory for tool {} version {} is present, but tool was not found'.format(
self.name, version))
except ToolExecError:
warn('tool {} version {} is installed, but the tool failed to run'.format(
self.name, version))
except ToolExecError as e:
warn('tool {} version {} is installed, but {}'.format(
self.name, version, e))
else:
if ver_str != version:
warn('tool {} version {} is installed, but has reported version {}'.format(