diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/lib/devtool/standard.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py index 22a9ec82c9..ec192238ed 100644 --- a/scripts/lib/devtool/standard.py +++ b/scripts/lib/devtool/standard.py @@ -498,18 +498,24 @@ def _extract_source(srctree, keep_temp, devbranch, sync, d, tinfoil): 'logging.LogRecord', 'bb.command.CommandCompleted', 'bb.command.CommandFailed', + 'bb.cooker.CookerExit', 'bb.build.TaskStarted', 'bb.build.TaskSucceeded', 'bb.build.TaskFailed', 'bb.build.TaskFailedSilent']) def runtask(target, task): + error = False if tinfoil.build_file(target, task): while True: event = tinfoil.wait_event(0.25) if event: if isinstance(event, bb.command.CommandCompleted): break + elif isinstance(event, bb.cooker.CookerExit): + # The server is going away, so drop the connection + tinfoil.server_connection = None + break elif isinstance(event, bb.command.CommandFailed): raise DevtoolError('Task do_%s failed: %s' % (task, event.error)) elif isinstance(event, bb.build.TaskFailed): @@ -519,7 +525,11 @@ def _extract_source(srctree, keep_temp, devbranch, sync, d, tinfoil): elif isinstance(event, logging.LogRecord): if event.levelno <= logging.INFO: continue + if event.levelno >= logging.ERROR: + error = True logger.handle(event) + if error: + raise DevtoolError('An error occurred during do_%s, exiting' % task) # we need virtual:native:/path/to/recipe if it's a BBCLASSEXTEND fn = tinfoil.get_recipe_file(pn) |