From 84ac591b53515b22e82204e6ebf27205b42eee45 Mon Sep 17 00:00:00 2001 From: Atneya Nair Date: Tue, 16 Jul 2024 17:25:29 -0700 Subject: [PATCH] dirmods: Add option to not recurse Sometimes we just want to see the modules of a particular directory, not its subdirectories, so add an option to do so. Also some minor cleanup on os.path.sep and unicode. Test: manual Bug: trivial Change-Id: Ib22f515ade6c890dfe6c2bb8042c600192ae002c --- bin/dirmods | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/bin/dirmods b/bin/dirmods index a6d4de3be..c8976d53f 100755 --- a/bin/dirmods +++ b/bin/dirmods @@ -32,7 +32,10 @@ import modinfo def main(): parser = argparse.ArgumentParser(description=__doc__) parser.add_argument('path') + parser.add_argument('--no-recurse', '-n', action='store_true', + help='Do not include modules defined in subdirs of path') args = parser.parse_args() + should_recurse = not args.no_recurse d = os.path.normpath(args.path) # Fix absolute path to be relative to build top @@ -43,15 +46,15 @@ def main(): if d.startswith(base): d = d[len(base):] - prefix = d + '/' + prefix = d + os.path.sep module_info = modinfo.ReadModuleInfo() results = set() for m in module_info.values(): - for path in m.get(u'path', []): - if path == d or path.startswith(prefix): - name = m.get(u'module_name') + for path in m.get('path', []): + if path == d or (should_recurse and path.startswith(prefix)): + name = m.get('module_name') if name: results.add(name)