diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-09-02 23:12:42 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-09-05 11:45:16 +0100 |
commit | 16f820a2a82c12184e7ea0734a61c45a22e82530 (patch) | |
tree | a771cd8ac14e8e02665244b3aeabe34c0bbf31f1 /bitbake/lib | |
parent | 4cb33dae15adb7f88a35a3630368db16923bca7e (diff) | |
download | poky-16f820a2a82c12184e7ea0734a61c45a22e82530.tar.gz |
bitbake: cooker/cookerdata: Use BBHandledException, not sys.exit()
Calling sys.exit() in the middle of the code is rather antisocial. We catch
this in various places but we shouldn't have to. In all these cases we have
already sent events explaining to the user what happened. This means the
correct exception is BBHandledException.
The recent startup changes have moved the point a lot of this code gets
called to inside the UI, with memres it would have always been possible
from there anyway. This change makes things much more consistent.
(Bitbake rev: 91699f366d24480ff3b19faec78fb9f3181b3e14)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib')
-rw-r--r-- | bitbake/lib/bb/cooker.py | 4 | ||||
-rw-r--r-- | bitbake/lib/bb/cookerdata.py | 10 |
2 files changed, 7 insertions, 7 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index fc017dd19f..a85e3587fd 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py | |||
@@ -352,7 +352,7 @@ class BBCooker: | |||
352 | self.caches_array.append(getattr(module, cache_name)) | 352 | self.caches_array.append(getattr(module, cache_name)) |
353 | except ImportError as exc: | 353 | except ImportError as exc: |
354 | logger.critical("Unable to import extra RecipeInfo '%s' from '%s': %s" % (cache_name, module_name, exc)) | 354 | logger.critical("Unable to import extra RecipeInfo '%s' from '%s': %s" % (cache_name, module_name, exc)) |
355 | sys.exit("FATAL: Failed to import extra cache class '%s'." % cache_name) | 355 | raise bb.BBHandledException() |
356 | 356 | ||
357 | self.databuilder = bb.cookerdata.CookerDataBuilder(self.configuration, False) | 357 | self.databuilder = bb.cookerdata.CookerDataBuilder(self.configuration, False) |
358 | self.databuilder.parseBaseConfiguration() | 358 | self.databuilder.parseBaseConfiguration() |
@@ -1127,7 +1127,7 @@ class BBCooker: | |||
1127 | from bb import shell | 1127 | from bb import shell |
1128 | except ImportError: | 1128 | except ImportError: |
1129 | parselog.exception("Interactive mode not available") | 1129 | parselog.exception("Interactive mode not available") |
1130 | sys.exit(1) | 1130 | raise bb.BBHandledException() |
1131 | else: | 1131 | else: |
1132 | shell.start( self ) | 1132 | shell.start( self ) |
1133 | 1133 | ||
diff --git a/bitbake/lib/bb/cookerdata.py b/bitbake/lib/bb/cookerdata.py index 190ff3ab82..48953a830b 100644 --- a/bitbake/lib/bb/cookerdata.py +++ b/bitbake/lib/bb/cookerdata.py | |||
@@ -164,7 +164,7 @@ def catch_parse_error(func): | |||
164 | import traceback | 164 | import traceback |
165 | parselog.critical(traceback.format_exc()) | 165 | parselog.critical(traceback.format_exc()) |
166 | parselog.critical("Unable to parse %s: %s" % (fn, exc)) | 166 | parselog.critical("Unable to parse %s: %s" % (fn, exc)) |
167 | sys.exit(1) | 167 | raise bb.BBHandledException() |
168 | except bb.data_smart.ExpansionError as exc: | 168 | except bb.data_smart.ExpansionError as exc: |
169 | import traceback | 169 | import traceback |
170 | 170 | ||
@@ -176,10 +176,10 @@ def catch_parse_error(func): | |||
176 | if not fn.startswith(bbdir): | 176 | if not fn.startswith(bbdir): |
177 | break | 177 | break |
178 | parselog.critical("Unable to parse %s" % fn, exc_info=(exc_class, exc, tb)) | 178 | parselog.critical("Unable to parse %s" % fn, exc_info=(exc_class, exc, tb)) |
179 | sys.exit(1) | 179 | raise bb.BBHandledException() |
180 | except bb.parse.ParseError as exc: | 180 | except bb.parse.ParseError as exc: |
181 | parselog.critical(str(exc)) | 181 | parselog.critical(str(exc)) |
182 | sys.exit(1) | 182 | raise bb.BBHandledException() |
183 | return wrapped | 183 | return wrapped |
184 | 184 | ||
185 | @catch_parse_error | 185 | @catch_parse_error |
@@ -355,7 +355,7 @@ class CookerDataBuilder(object): | |||
355 | for layer in broken_layers: | 355 | for layer in broken_layers: |
356 | parselog.critical(" %s", layer) | 356 | parselog.critical(" %s", layer) |
357 | parselog.critical("Please check BBLAYERS in %s" % (layerconf)) | 357 | parselog.critical("Please check BBLAYERS in %s" % (layerconf)) |
358 | sys.exit(1) | 358 | raise bb.BBHandledException() |
359 | 359 | ||
360 | for layer in layers: | 360 | for layer in layers: |
361 | parselog.debug(2, "Adding layer %s", layer) | 361 | parselog.debug(2, "Adding layer %s", layer) |
@@ -427,7 +427,7 @@ class CookerDataBuilder(object): | |||
427 | handlerfn = data.getVarFlag(var, "filename", False) | 427 | handlerfn = data.getVarFlag(var, "filename", False) |
428 | if not handlerfn: | 428 | if not handlerfn: |
429 | parselog.critical("Undefined event handler function '%s'" % var) | 429 | parselog.critical("Undefined event handler function '%s'" % var) |
430 | sys.exit(1) | 430 | raise bb.BBHandledException() |
431 | handlerln = int(data.getVarFlag(var, "lineno", False)) | 431 | handlerln = int(data.getVarFlag(var, "lineno", False)) |
432 | bb.event.register(var, data.getVar(var, False), (data.getVarFlag(var, "eventmask") or "").split(), handlerfn, handlerln) | 432 | bb.event.register(var, data.getVar(var, False), (data.getVarFlag(var, "eventmask") or "").split(), handlerfn, handlerln) |
433 | 433 | ||