diff options
Diffstat (limited to 'scripts/lib/devtool/standard.py')
| -rw-r--r-- | scripts/lib/devtool/standard.py | 34 |
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 | |||
| 30 | import glob | 30 | import glob |
| 31 | import filecmp | 31 | import filecmp |
| 32 | from collections import OrderedDict | 32 | from collections import OrderedDict |
| 33 | from 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 | 33 | from devtool import exec_build_env_command, setup_tinfoil, check_workspace_recipe, use_external_build, setup_git_repo, recipe_to_append, get_bbclassextend_targets, DevtoolError |
| 34 | from devtool import parse_recipe | 34 | from devtool import parse_recipe |
| 35 | 35 | ||
| 36 | logger = logging.getLogger('devtool') | 36 | logger = 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: |
