diff options
author | Lars Wirzenius <lars.wirzenius@codethink.co.uk> | 2011-11-14 17:36:37 +0000 |
---|---|---|
committer | Lars Wirzenius <lars.wirzenius@codethink.co.uk> | 2011-11-14 17:36:37 +0000 |
commit | 75e12a03d9e623d233656d83764c67bb43ff0f58 (patch) | |
tree | a2b731905e08938f54d921dbb769997aced5bfde /morphlib/execute.py | |
parent | 16c7c0a6d2dc03647f32406263864a4964104e7d (diff) | |
download | morph-75e12a03d9e623d233656d83764c67bb43ff0f58.tar.gz |
Tweak error reporting from failed commands.
Diffstat (limited to 'morphlib/execute.py')
-rw-r--r-- | morphlib/execute.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/morphlib/execute.py b/morphlib/execute.py index 1315b53e..f35e4a70 100644 --- a/morphlib/execute.py +++ b/morphlib/execute.py @@ -14,6 +14,7 @@ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +import cliapp import logging import os import subprocess @@ -21,10 +22,12 @@ import subprocess import morphlib -class CommandFailure(Exception): +class CommandFailure(cliapp.AppException): - def __init__(self, command): - Exception.__init__(self, 'Command failed: %s' % command) + def __init__(self, command, stderr): + cliapp.AppException.__init__(self, + 'Command failed: %s\Output from command:\n%s' % + (command, stderr)) class Execute(object): @@ -66,7 +69,7 @@ class Execute(object): logging.error('Exit code: %d' % p.returncode) logging.error('Standard output and error:\n%s' % morphlib.util.indent(out)) - raise CommandFailure(command) + raise CommandFailure(command, out) stdouts.append(out) return stdouts @@ -92,6 +95,6 @@ class Execute(object): logging.error('Exit code: %d' % p.returncode) logging.error('Standard output and error:\n%s' % morphlib.util.indent(out)) - raise CommandFailure(' '.join(argv)) + raise CommandFailure(' '.join(argv), out) return out |