oe/patch: more detailed error reporting

Show the actual command that failed when raising a CmdError. Makes
figuring out what actually failed much easier.

[YOCTO #9344]

(From OE-Core rev: 8e9c03df1810daab7171733f1713ef94d3a18ab2)

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Markus Lehtonen
2016-04-01 18:02:41 +03:00
committed by Richard Purdie
parent a2bf9e39b6
commit bf140145a0

View File

@@ -8,12 +8,14 @@ class NotFoundError(bb.BBHandledException):
return "Error: %s not found." % self.path
class CmdError(bb.BBHandledException):
def __init__(self, exitstatus, output):
def __init__(self, command, exitstatus, output):
self.command = command
self.status = exitstatus
self.output = output
def __str__(self):
return "Command Error: exit status: %d Output:\n%s" % (self.status, self.output)
return "Command Error: '%s' exited with %d Output:\n%s" % \
(self.command, self.status, self.output)
def runcmd(args, dir = None):
@@ -32,7 +34,7 @@ def runcmd(args, dir = None):
# print("cmd: %s" % cmd)
(exitstatus, output) = oe.utils.getstatusoutput(cmd)
if exitstatus != 0:
raise CmdError(exitstatus >> 8, output)
raise CmdError(cmd, exitstatus >> 8, output)
return output
finally: