diff options
-rw-r--r-- | lib/bb/build.py | 5 | ||||
-rw-r--r-- | lib/bb/utils.py | 9 |
2 files changed, 4 insertions, 10 deletions
diff --git a/lib/bb/build.py b/lib/bb/build.py index 98ee36ce5..32022d808 100644 --- a/lib/bb/build.py +++ b/lib/bb/build.py @@ -242,10 +242,9 @@ def exec_func_python(func, d, runfile, cwd=None): try: comp = utils.better_compile(code, func, bbfile) utils.better_exec(comp, {"d": d}, code, bbfile) + except (bb.parse.SkipRecipe, bb.build.FuncFailed): + raise except: - if sys.exc_info()[0] in (bb.parse.SkipRecipe, bb.build.FuncFailed): - raise - raise FuncFailed(func, None) finally: bb.debug(2, "Python function %s finished" % func) diff --git a/lib/bb/utils.py b/lib/bb/utils.py index c179394dc..96d821881 100644 --- a/lib/bb/utils.py +++ b/lib/bb/utils.py @@ -354,16 +354,11 @@ def better_exec(code, context, text = None, realfile = "<code>"): code = better_compile(code, realfile, realfile) try: exec(code, get_context(), context) - except bb.BBHandledException: - # Error already shown so passthrough - raise - except bb.data_smart.ExpansionError: + except (bb.BBHandledException, bb.parse.SkipRecipe, bb.build.FuncFailed, bb.data_smart.ExpansionError): + # Error already shown so passthrough, no need for traceback raise except Exception as e: (t, value, tb) = sys.exc_info() - - if t in [bb.parse.SkipRecipe, bb.build.FuncFailed]: - raise try: _print_exception(t, value, tb, realfile, text, context) except Exception as e: |