From b1185da31a702034494e4204fa5592cee7e5f2a7 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Jan 28 2016 22:29:02 +0000 Subject: req: generate suggests for optional dependencies --- diff --git a/nodejs.attr b/nodejs.attr index 832a4be..04ece0b 100644 --- a/nodejs.attr +++ b/nodejs.attr @@ -1,3 +1,4 @@ %__nodejs_provides %{_rpmconfigdir}/nodejs.prov %__nodejs_requires %{_rpmconfigdir}/nodejs.req +%__nodejs_suggests %{_rpmconfigdir}/nodejs.req --optional %__nodejs_path ^/usr/lib.*/node_modules/.*/package\\.json$ diff --git a/nodejs.req b/nodejs.req index bd1451f..e4b1e30 100755 --- a/nodejs.req +++ b/nodejs.req @@ -50,26 +50,32 @@ def main(): metadata = json.load(fh) fh.close() - #write out the node.js interpreter dependency - req = 'nodejs(engine)' - - if 'engines' in metadata and isinstance(metadata['engines'], dict) \ - and 'node' in metadata['engines']: - deps += process_dep(req, metadata['engines']['node']) + if '--optional' in sys.argv: + deptype = 'optionalDependencies' else: - deps.append(req) + deptype = 'dependencies' + + if deptype == 'dependencies': + #write out the node.js interpreter dependency + req = 'nodejs(engine)' + + if 'engines' in metadata and isinstance(metadata['engines'], dict) \ + and 'node' in metadata['engines']: + deps += process_dep(req, metadata['engines']['node']) + else: + deps.append(req) - if 'dependencies' in metadata: - if isinstance(metadata['dependencies'], dict): - for name, version in metadata['dependencies'].iteritems(): + if deptype in metadata: + if isinstance(metadata[deptype], dict): + for name, version in metadata[deptype].iteritems(): req = 'npm(' + name + ')' deps += process_dep(req, version) - elif isinstance(metadata['dependencies'], list): - for name in metadata['dependencies']: + elif isinstance(metadata[deptype], list): + for name in metadata[deptype]: req = 'npm(' + name + ')' deps.append(req) - elif isinstance(metadata['dependencies'], basestring): - req = 'npm(' + metadata['dependencies'] + ')' + elif isinstance(metadata[deptype], basestring): + req = 'npm(' + metadata[deptype] + ')' deps.append(req) else: raise TypeError('invalid package.json: dependencies not a valid type')