mirror of
https://git.yoctoproject.org/poky
synced 2026-07-26 19:17:07 +00:00
devtool: fix build env command execution error handling
If we execute an external command, we ought to prepare for the possibility that it can fail and handle the failure appropriately. We can especially expect this to happen when running bitbake in this scenario. Ensure we return the appropriate exit code to the calling process. Fixes [YOCTO #7757]. (From OE-Core master rev: 98a716d79bfc5434a5b42d3ca683eab3eea30a41) (From OE-Core rev: 2791fe9236f7173e6b998cf9b40fe238566ed8ee) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
8c9551a7a3
commit
b317d79fb7
@@ -43,12 +43,13 @@ def exec_build_env_command(init_path, builddir, cmd, watch=False, **options):
|
||||
if watch:
|
||||
if sys.stdout.isatty():
|
||||
# Fool bitbake into thinking it's outputting to a terminal (because it is, indirectly)
|
||||
cmd = 'script -q -c "%s" /dev/null' % cmd
|
||||
cmd = 'script -e -q -c "%s" /dev/null' % cmd
|
||||
return exec_watch('%s%s' % (init_prefix, cmd), **options)
|
||||
else:
|
||||
return bb.process.run('%s%s' % (init_prefix, cmd), **options)
|
||||
|
||||
def exec_watch(cmd, **options):
|
||||
import bb
|
||||
if isinstance(cmd, basestring) and not "shell" in options:
|
||||
options["shell"] = True
|
||||
|
||||
@@ -65,7 +66,11 @@ def exec_watch(cmd, **options):
|
||||
buf += out
|
||||
elif out == '' and process.poll() != None:
|
||||
break
|
||||
return buf
|
||||
|
||||
if process.returncode != 0:
|
||||
raise bb.process.ExecutionError(cmd, process.returncode, buf, None)
|
||||
|
||||
return buf, None
|
||||
|
||||
def setup_tinfoil():
|
||||
import scriptpath
|
||||
|
||||
Reference in New Issue
Block a user