mirror of
https://github.com/mail-in-a-box/mailinabox.git
synced 2024-11-24 02:37:05 +00:00
Improve error messages in the management tools when external command-line tools are run
This commit is contained in:
parent
20ec6c2080
commit
26709a3c1d
@ -122,13 +122,16 @@ def shell(method, cmd_args, env={}, capture_stderr=False, return_bytes=False, tr
|
|||||||
if method == "check_output" and input is not None:
|
if method == "check_output" and input is not None:
|
||||||
kwargs['input'] = input
|
kwargs['input'] = input
|
||||||
|
|
||||||
if not trap:
|
|
||||||
ret = getattr(subprocess, method)(cmd_args, **kwargs)
|
|
||||||
else:
|
|
||||||
try:
|
try:
|
||||||
ret = getattr(subprocess, method)(cmd_args, **kwargs)
|
ret = getattr(subprocess, method)(cmd_args, **kwargs)
|
||||||
code = 0
|
code = 0
|
||||||
except subprocess.CalledProcessError as e:
|
except subprocess.CalledProcessError as e:
|
||||||
|
if not trap:
|
||||||
|
# Reformat exception.
|
||||||
|
msg = "Command failed with exit code {}: {}".format(e.returncode, subprocess.list2cmdline(cmd_args))
|
||||||
|
if e.output: msg += "\n\nOutput:\n" + e.output
|
||||||
|
raise Exception(msg)
|
||||||
|
else:
|
||||||
ret = e.output
|
ret = e.output
|
||||||
code = e.returncode
|
code = e.returncode
|
||||||
if not return_bytes and isinstance(ret, bytes): ret = ret.decode("utf8")
|
if not return_bytes and isinstance(ret, bytes): ret = ret.decode("utf8")
|
||||||
|
Loading…
Reference in New Issue
Block a user