summaryrefslogtreecommitdiffstats
path: root/scripts/lib/recipetool/create_npm.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/lib/recipetool/create_npm.py')
-rw-r--r--scripts/lib/recipetool/create_npm.py20
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)