From 4827389e26acfaeb9aa178795d7f5d4a922baabb Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Sat, 22 Jul 2017 18:12:36 +0000 Subject: [PATCH] projects.py pkg-requires: Add options to query naked projects list - Remove --vendor (-V), was dysfunctional, anyway - Add options to strip the results: --subsections (-S) --delimiter (-d) --no-subpackages (-p) --no-version Signed-off-by: Jan Lindemann --- scripts/projects.py | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/scripts/projects.py b/scripts/projects.py index 6228b7be..eaefc0b9 100644 --- a/scripts/projects.py +++ b/scripts/projects.py @@ -206,19 +206,26 @@ def pkg_relations(rel_type, args_): parser = argparse.ArgumentParser(description='pkg-' + rel_type) # TODO: implement Vendor evaluation - parser.add_argument('--vendor', '-V', nargs='?', default='jw', help='Package Vendor') + parser.add_argument('--subsections', '-S', nargs='?', default=None, help='Subsections to consider, comma-separated') + parser.add_argument('--delimiter', '-d', nargs='?', default=', ', help='Output words delimiter') parser.add_argument('flavour', help='Flavour') parser.add_argument('module', nargs='*', help='Modules') + parser.add_argument('--no-subpackages', '-p', action='store_true', + default=False, help='Cut -run and -devel from package names') + parser.add_argument('--no-version', action='store_true', + default=False, help='Don\'t report version information') parser.add_argument('--dont-strip-revision', action='store_true', default=False, help='Always treat VERSION macro as VERSION-REVISION') parser.add_argument('--dont-expand-version-macros', action='store_true', default=False, help='Don\'t expand VERSION and REVISION macros') args=parser.parse_args(args_) - debug('flavour = ', args.flavour, ', vendor = ', args.vendor) version_pattern=re.compile("[0-9-.]*") - subsecs = os_cascade() - subsecs.append('jw') - debug("subsecs = ", subsecs) + if args.subsections is None: + subsecs = os_cascade() + subsecs.append('jw') + else: + subsecs = args.subsections.split(',') + debug('flavour = ', args.flavour, ', subsecs = ', ' '.join(subsecs)) r = [] for s in subsecs: for m in args.module: @@ -228,6 +235,10 @@ def pkg_relations(rel_type, args_): deps = value.split(',') for spec in deps: dep = re.split('([=><]+)', spec) + if args.no_version: + dep = dep[:1] + if args.no_subpackages: + dep[0] = re.sub('-devel$|-run$', '', dep[0]) for i, item in enumerate(dep): dep[i] = item.strip() if len(dep) == 3: @@ -249,7 +260,7 @@ def pkg_relations(rel_type, args_): else: raise Exception("Unknown version specifier in " + spec) r.append(' '.join(dep)) - print(', '.join(r)) + print(args.delimiter.join(r)) def get_libname(names): vals = get_modules_from_project_txt(names, 'build', 'libname',