diff options
Diffstat (limited to 'scripts/lib/recipetool/create_npm.py')
| -rw-r--r-- | scripts/lib/recipetool/create_npm.py | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/scripts/lib/recipetool/create_npm.py b/scripts/lib/recipetool/create_npm.py index eb19555a8e..a79a9afbb1 100644 --- a/scripts/lib/recipetool/create_npm.py +++ b/scripts/lib/recipetool/create_npm.py | |||
| @@ -65,9 +65,9 @@ class NpmRecipeHandler(RecipeHandler): | |||
| 65 | 'SEE-LICENSE-IN-EULA') | 65 | 'SEE-LICENSE-IN-EULA') |
| 66 | return license | 66 | return license |
| 67 | 67 | ||
| 68 | def _shrinkwrap(self, srctree, localfilesdir, extravalues, lines_before): | 68 | def _shrinkwrap(self, srctree, localfilesdir, extravalues, lines_before, d): |
| 69 | try: | 69 | try: |
| 70 | runenv = dict(os.environ, PATH=tinfoil.config_data.getVar('PATH')) | 70 | runenv = dict(os.environ, PATH=d.getVar('PATH')) |
| 71 | bb.process.run('npm shrinkwrap', cwd=srctree, stderr=subprocess.STDOUT, env=runenv, shell=True) | 71 | bb.process.run('npm shrinkwrap', cwd=srctree, stderr=subprocess.STDOUT, env=runenv, shell=True) |
| 72 | except bb.process.ExecutionError as e: | 72 | except bb.process.ExecutionError as e: |
| 73 | logger.warn('npm shrinkwrap failed:\n%s' % e.stdout) | 73 | logger.warn('npm shrinkwrap failed:\n%s' % e.stdout) |
| @@ -79,8 +79,8 @@ class NpmRecipeHandler(RecipeHandler): | |||
| 79 | extravalues['extrafiles']['npm-shrinkwrap.json'] = tmpfile | 79 | extravalues['extrafiles']['npm-shrinkwrap.json'] = tmpfile |
| 80 | lines_before.append('NPM_SHRINKWRAP := "${THISDIR}/${PN}/npm-shrinkwrap.json"') | 80 | lines_before.append('NPM_SHRINKWRAP := "${THISDIR}/${PN}/npm-shrinkwrap.json"') |
| 81 | 81 | ||
| 82 | def _lockdown(self, srctree, localfilesdir, extravalues, lines_before): | 82 | def _lockdown(self, srctree, localfilesdir, extravalues, lines_before, d): |
| 83 | runenv = dict(os.environ, PATH=tinfoil.config_data.getVar('PATH')) | 83 | runenv = dict(os.environ, PATH=d.getVar('PATH')) |
| 84 | if not NpmRecipeHandler.lockdownpath: | 84 | if not NpmRecipeHandler.lockdownpath: |
| 85 | NpmRecipeHandler.lockdownpath = tempfile.mkdtemp('recipetool-npm-lockdown') | 85 | NpmRecipeHandler.lockdownpath = tempfile.mkdtemp('recipetool-npm-lockdown') |
| 86 | bb.process.run('npm install lockdown --prefix %s' % NpmRecipeHandler.lockdownpath, | 86 | bb.process.run('npm install lockdown --prefix %s' % NpmRecipeHandler.lockdownpath, |
| @@ -188,7 +188,9 @@ class NpmRecipeHandler(RecipeHandler): | |||
| 188 | 188 | ||
| 189 | files = RecipeHandler.checkfiles(srctree, ['package.json']) | 189 | files = RecipeHandler.checkfiles(srctree, ['package.json']) |
| 190 | if files: | 190 | if files: |
| 191 | check_npm(tinfoil.config_data) | 191 | d = bb.data.createCopy(tinfoil.config_data) |
| 192 | npm_bindir = check_npm(tinfoil) | ||
| 193 | d.prependVar('PATH', '%s:' % npm_bindir) | ||
| 192 | 194 | ||
| 193 | data = read_package_json(files[0]) | 195 | data = read_package_json(files[0]) |
| 194 | if 'name' in data and 'version' in data: | 196 | if 'name' in data and 'version' in data: |
| @@ -203,17 +205,17 @@ class NpmRecipeHandler(RecipeHandler): | |||
| 203 | 205 | ||
| 204 | fetchdev = extravalues['fetchdev'] or None | 206 | fetchdev = extravalues['fetchdev'] or None |
| 205 | deps, optdeps, devdeps = self.get_npm_package_dependencies(data, fetchdev) | 207 | deps, optdeps, devdeps = self.get_npm_package_dependencies(data, fetchdev) |
| 206 | updated = self._handle_dependencies(tinfoil.config_data, deps, optdeps, devdeps, lines_before, srctree) | 208 | updated = self._handle_dependencies(d, deps, optdeps, devdeps, lines_before, srctree) |
| 207 | if updated: | 209 | if updated: |
| 208 | # We need to redo the license stuff | 210 | # We need to redo the license stuff |
| 209 | self._replace_license_vars(srctree, lines_before, handled, extravalues, tinfoil.config_data) | 211 | self._replace_license_vars(srctree, lines_before, handled, extravalues, d) |
| 210 | 212 | ||
| 211 | # Shrinkwrap | 213 | # Shrinkwrap |
| 212 | localfilesdir = tempfile.mkdtemp(prefix='recipetool-npm') | 214 | localfilesdir = tempfile.mkdtemp(prefix='recipetool-npm') |
| 213 | self._shrinkwrap(srctree, localfilesdir, extravalues, lines_before) | 215 | self._shrinkwrap(srctree, localfilesdir, extravalues, lines_before, d) |
| 214 | 216 | ||
| 215 | # Lockdown | 217 | # Lockdown |
| 216 | self._lockdown(srctree, localfilesdir, extravalues, lines_before) | 218 | self._lockdown(srctree, localfilesdir, extravalues, lines_before, d) |
| 217 | 219 | ||
| 218 | # Split each npm module out to is own package | 220 | # Split each npm module out to is own package |
| 219 | npmpackages = oe.package.npm_split_package_dirs(srctree) | 221 | npmpackages = oe.package.npm_split_package_dirs(srctree) |
