From 69c8ef135d4443e2d1ad8873d205d8d27d699546 Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Wed, 12 Apr 2017 17:11:35 +1200 Subject: devtool: add: prevent repeatedly running recipetool If recipetool returns with exit code 14 this means devtool needs to build nodejs-native and then call it again. If recipetool returns exit code 14 again then clearly something has gone wrong and we should just quit with an error. Signed-off-by: Paul Eggleton --- scripts/lib/devtool/standard.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py index 73e629ca6f..1e84ae413f 100644 --- a/scripts/lib/devtool/standard.py +++ b/scripts/lib/devtool/standard.py @@ -155,11 +155,14 @@ def add(args, config, basepath, workspace): tempdir = tempfile.mkdtemp(prefix='devtool') try: + builtnpm = False while True: try: stdout, _ = exec_build_env_command(config.init_path, basepath, 'recipetool --color=%s create --devtool -o %s \'%s\' %s' % (color, tempdir, source, extracmdopts), watch=True) except bb.process.ExecutionError as e: if e.exitcode == 14: + if builtnpm: + raise DevtoolError('Re-running recipetool still failed to find npm') # FIXME this is a horrible hack that is unfortunately # necessary due to the fact that we can't run bitbake from # inside recipetool since recipetool keeps tinfoil active @@ -167,6 +170,7 @@ def add(args, config, basepath, workspace): # to exit out and come back here to do it. ensure_npm(config, basepath, args.fixed_setup, check_exists=False) logger.info('Re-running recipe creation process after building nodejs') + builtnpm = True continue elif e.exitcode == 15: raise DevtoolError('Could not auto-determine recipe name, please specify it on the command line') -- cgit 1.2.3-korg