summaryrefslogtreecommitdiffstats
path: root/scripts/lib/devtool/standard.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/lib/devtool/standard.py')
-rw-r--r--scripts/lib/devtool/standard.py34
1 files changed, 8 insertions, 26 deletions
diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py
index 0104e675db..54558ce799 100644
--- a/scripts/lib/devtool/standard.py
+++ b/scripts/lib/devtool/standard.py
@@ -30,7 +30,7 @@ import errno
30import glob 30import glob
31import filecmp 31import filecmp
32from collections import OrderedDict 32from collections import OrderedDict
33from devtool import exec_build_env_command, setup_tinfoil, check_workspace_recipe, use_external_build, setup_git_repo, recipe_to_append, get_bbclassextend_targets, ensure_npm, DevtoolError 33from devtool import exec_build_env_command, setup_tinfoil, check_workspace_recipe, use_external_build, setup_git_repo, recipe_to_append, get_bbclassextend_targets, DevtoolError
34from devtool import parse_recipe 34from devtool import parse_recipe
35 35
36logger = logging.getLogger('devtool') 36logger = logging.getLogger('devtool')
@@ -128,9 +128,6 @@ def add(args, config, basepath, workspace):
128 color = args.color 128 color = args.color
129 extracmdopts = '' 129 extracmdopts = ''
130 if args.fetchuri: 130 if args.fetchuri:
131 if args.fetchuri.startswith('npm://'):
132 ensure_npm(config, basepath, args.fixed_setup)
133
134 source = args.fetchuri 131 source = args.fetchuri
135 if srctree: 132 if srctree:
136 extracmdopts += ' -x %s' % srctree 133 extracmdopts += ' -x %s' % srctree
@@ -155,28 +152,13 @@ def add(args, config, basepath, workspace):
155 152
156 tempdir = tempfile.mkdtemp(prefix='devtool') 153 tempdir = tempfile.mkdtemp(prefix='devtool')
157 try: 154 try:
158 builtnpm = False 155 try:
159 while True: 156 stdout, _ = exec_build_env_command(config.init_path, basepath, 'recipetool --color=%s create --devtool -o %s \'%s\' %s' % (color, tempdir, source, extracmdopts), watch=True)
160 try: 157 except bb.process.ExecutionError as e:
161 stdout, _ = exec_build_env_command(config.init_path, basepath, 'recipetool --color=%s create --devtool -o %s \'%s\' %s' % (color, tempdir, source, extracmdopts), watch=True) 158 if e.exitcode == 15:
162 except bb.process.ExecutionError as e: 159 raise DevtoolError('Could not auto-determine recipe name, please specify it on the command line')
163 if e.exitcode == 14: 160 else:
164 if builtnpm: 161 raise DevtoolError('Command \'%s\' failed' % e.command)
165 raise DevtoolError('Re-running recipetool still failed to find npm')
166 # FIXME this is a horrible hack that is unfortunately
167 # necessary due to the fact that we can't run bitbake from
168 # inside recipetool since recipetool keeps tinfoil active
169 # with references to it throughout the code, so we have
170 # to exit out and come back here to do it.
171 ensure_npm(config, basepath, args.fixed_setup, check_exists=False)
172 logger.info('Re-running recipe creation process after building nodejs')
173 builtnpm = True
174 continue
175 elif e.exitcode == 15:
176 raise DevtoolError('Could not auto-determine recipe name, please specify it on the command line')
177 else:
178 raise DevtoolError('Command \'%s\' failed' % e.command)
179 break
180 162
181 recipes = glob.glob(os.path.join(tempdir, '*.bb')) 163 recipes = glob.glob(os.path.join(tempdir, '*.bb'))
182 if recipes: 164 if recipes: