diff options
authorPaul Eggleton <paul.eggleton@linux.intel.com>2017-04-12 17:11:35 +1200
committerPaul Eggleton <paul.eggleton@linux.intel.com>2017-04-12 22:39:20 +1200
commit69c8ef135d4443e2d1ad8873d205d8d27d699546 (patch)
parentbd0a34066dc5009024ed3c37bc7c5e3407c0babc (diff)
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 <paul.eggleton@linux.intel.com>
1 files changed, 4 insertions, 0 deletions
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')
+ builtnpm = False
while True:
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
elif e.exitcode == 15:
raise DevtoolError('Could not auto-determine recipe name, please specify it on the command line')