From ec701ded12d1181797ad04df8b49d9a1b2275bb9 Mon Sep 17 00:00:00 2001 From: Cole Faust Date: Tue, 4 Jun 2024 12:30:55 -0700 Subject: [PATCH] Cleanup dirmods, outmod, and pathmod - Use argparse for parsing - Correct copy/pasted documentation - Misc small tweaks Bug: 340648588 Test: manually Change-Id: I11373bd25712b6880517efbb7aefabf70d29a771 --- bin/dirmods | 28 +++++++++++++++------------- bin/outmod | 27 +++++++++++++++------------ bin/pathmod | 25 ++++++++++++++----------- 3 files changed, 44 insertions(+), 36 deletions(-) diff --git a/bin/dirmods b/bin/dirmods index d43506a6a..52d935a5a 100755 --- a/bin/dirmods +++ b/bin/dirmods @@ -14,25 +14,27 @@ # See the License for the specific language governing permissions and # limitations under the License. +''' +Lists all modules in the given directory or its decendant directories, as cached +in module-info.json. If any build change is made, and it should be reflected in +the output, you should run 'refreshmod' first. +''' + import sys sys.dont_write_bytecode = True -import modinfo - +import argparse import os -# Get the path of a specific module in the android tree, as cached in module-info.json. -# If any build change is made, and it should be reflected in the output, you should run -# 'refreshmod' first. Note: This is the inverse of pathmod. +import modinfo -def main(argv): - if len(argv) != 2: - sys.stderr.write("usage: usage: dirmods \n") - sys.exit(1) - d = argv[1] - while d.endswith('/'): - d = d[:-1] +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('path') + args = parser.parse_args() + + d = os.path.normpath(args.path) prefix = d + '/' module_info = modinfo.ReadModuleInfo() @@ -49,4 +51,4 @@ def main(argv): print(name) if __name__ == "__main__": - main(sys.argv) + main() diff --git a/bin/outmod b/bin/outmod index 681b405f7..022ff3602 100755 --- a/bin/outmod +++ b/bin/outmod @@ -14,26 +14,29 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Get the path of a specific module in the android tree, as cached in module-info.json. -# If any build change is made, and it should be reflected in the output, you should run -# 'refreshmod' first. Note: This is the inverse of dirmods. +''' +Lists the output files of a specific module in the android tree, as cached in +module-info.json. If any build change is made, and it should be reflected in the +output, you should run 'refreshmod' first. +''' import sys sys.dont_write_bytecode = True -import modinfo - +import argparse import os +import modinfo -def main(argv): - if len(argv) != 2: - sys.stderr.write("usage: outmod \n") - sys.exit(1) - for output in modinfo.GetModule(modinfo.ReadModuleInfo(), argv[1])['installed']: - print(os.path.join(os.getenv("ANDROID_BUILD_TOP"), output)) +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('module') + args = parser.parse_args() + + for output in modinfo.GetModule(modinfo.ReadModuleInfo(), args.module)['installed']: + print(os.path.join(os.getenv("ANDROID_BUILD_TOP", ""), output)) if __name__ == "__main__": - main(sys.argv) + main() diff --git a/bin/pathmod b/bin/pathmod index f5560bae4..70cf95829 100755 --- a/bin/pathmod +++ b/bin/pathmod @@ -14,25 +14,28 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Get the path of a specific module in the android tree, as cached in module-info.json. -# If any build change is made, and it should be reflected in the output, you should run -# 'refreshmod' first. Note: This is the inverse of dirmods. +''' +Get the path of a specific module in the android tree, as cached in module-info.json. +If any build change is made, and it should be reflected in the output, you should run +'refreshmod' first. Note: This is the inverse of dirmods. +''' import sys sys.dont_write_bytecode = True -import modinfo - +import argparse import os +import modinfo -def main(argv): - if len(argv) != 2: - sys.stderr.write("usage: pathmod \n") - sys.exit(1) - path = modinfo.GetModule(modinfo.ReadModuleInfo(), argv[1])['path'][0] +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('module') + args = parser.parse_args() + + path = modinfo.GetModule(modinfo.ReadModuleInfo(), args.module)['path'][0] print(os.path.join(os.getenv("ANDROID_BUILD_TOP", ""), path)) if __name__ == "__main__": - main(sys.argv) + main()