bitbake: fetch2/npm: handle alternative dependency syntax
npm allows you to specify a dependency as a Github username+path, or omit the version entirely. You can hit these if you don't use a shrinkwrap file, with the result that the code later fails due to the output of "npm view" being empty; so handle this lazily by just ignoring this part of the dependency if it's not really a version. (Bitbake rev: 7b7a65c44dbdd5ba9366d4e2093f76df8758d546) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
d9999279d9
commit
0cd1be1f09
|
@ -144,13 +144,15 @@ class Npm(FetchMethod):
|
|||
|
||||
def _getdependencies(self, pkg, data, version, d, ud):
|
||||
pkgfullname = pkg
|
||||
if version:
|
||||
if version != '*' and not '/' in version:
|
||||
pkgfullname += "@%s" % version
|
||||
logger.debug(2, "Calling getdeps on %s" % pkg)
|
||||
fetchcmd = "npm view %s dist.tarball --registry %s" % (pkgfullname, ud.registry)
|
||||
output = runfetchcmd(fetchcmd, d, True)
|
||||
# npm may resolve multiple versions
|
||||
outputarray = output.strip().splitlines()
|
||||
if not outputarray:
|
||||
raise FetchError("The command '%s' returned no output" % fetchcmd)
|
||||
# we just take the latest version npm resolved
|
||||
#logger.debug(2, "Output URL is %s - %s - %s" % (ud.basepath, ud.basename, ud.localfile))
|
||||
outputurl = outputarray[len(outputarray)-1].rstrip()
|
||||
|
|
Loading…
Reference in New Issue