[bitbake-devel] [PATCH 1/4] bitbake: fetch2/npm: fix npw view parsing
Jean-Marie LEMETAYER
jean-marie.lemetayer at savoirfairelinux.com
Fri May 17 15:14:07 UTC 2019
Fixes [YOCTO #13344]
When parsing manually the 'npm view --json' ouput, an extra closing
brackets in a JSON string can leads the fetcher to fail with a
JSONDecodeError exception.
This commit use the JSON parser to extract:
- The last object in the returned array if there are multiple results.
- The returned object if there is only one result.
Signed-off-by: Jean-Marie LEMETAYER <jean-marie.lemetayer at savoirfairelinux.com>
---
bitbake/lib/bb/fetch2/npm.py | 19 +++++--------------
1 file changed, 5 insertions(+), 14 deletions(-)
diff --git a/bitbake/lib/bb/fetch2/npm.py b/bitbake/lib/bb/fetch2/npm.py
index f08bdee739..4427b1bb87 100644
--- a/bitbake/lib/bb/fetch2/npm.py
+++ b/bitbake/lib/bb/fetch2/npm.py
@@ -151,20 +151,11 @@ class Npm(FetchMethod):
Parse the output of npm view --json; the last JSON result
is assumed to be the one that we're interested in.
'''
- pdata = None
- outdeps = {}
- datalines = []
- bracelevel = 0
- for line in output.splitlines():
- if bracelevel:
- datalines.append(line)
- elif '{' in line:
- datalines = []
- datalines.append(line)
- bracelevel = bracelevel + line.count('{') - line.count('}')
- if datalines:
- pdata = json.loads('\n'.join(datalines))
- return pdata
+ pdata = json.loads(output);
+ try:
+ return pdata[-1]
+ except:
+ return pdata
def _getdependencies(self, pkg, data, version, d, ud, optional=False, fetchedlist=None):
if fetchedlist is None:
--
2.20.1
More information about the bitbake-devel
mailing list