summaryrefslogtreecommitdiff
path: root/morphlib/execute.py
diff options
context:
space:
mode:
authorLars Wirzenius <lars.wirzenius@codethink.co.uk>2011-11-14 17:36:37 +0000
committerLars Wirzenius <lars.wirzenius@codethink.co.uk>2011-11-14 17:36:37 +0000
commit75e12a03d9e623d233656d83764c67bb43ff0f58 (patch)
treea2b731905e08938f54d921dbb769997aced5bfde /morphlib/execute.py
parent16c7c0a6d2dc03647f32406263864a4964104e7d (diff)
downloadmorph-75e12a03d9e623d233656d83764c67bb43ff0f58.tar.gz
Tweak error reporting from failed commands.
Diffstat (limited to 'morphlib/execute.py')
-rw-r--r--morphlib/execute.py13
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