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 <jan@janware.com>
This commit is contained in:
Jan Lindemann 2017-07-22 18:12:36 +00:00
commit 4827389e26

View file

@ -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',