summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/bb/build.py5
-rw-r--r--lib/bb/utils.py9
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: