1df917f87SPatrick Williams#!/usr/bin/python3 2df917f87SPatrick Williams 3df917f87SPatrick Williamsimport argparse 4df917f87SPatrick Williamsfrom importlib import import_module 5*a3db66b3SPatrick Williams 6df917f87SPatrick Williams 7df917f87SPatrick Williamsdef main() -> int: 8df917f87SPatrick Williams parser = argparse.ArgumentParser(description="Obtain TOF voter metrics") 9df917f87SPatrick Williams parser.add_argument( 10df917f87SPatrick Williams "--data-directory", 11df917f87SPatrick Williams "-d", 12df917f87SPatrick Williams help="Data directory (default 'data')", 13df917f87SPatrick Williams dest="dir", 14df917f87SPatrick Williams default="data", 15df917f87SPatrick Williams ) 16df917f87SPatrick Williams 17df917f87SPatrick Williams subparser = parser.add_subparsers(help="Available subcommands") 18df917f87SPatrick Williams 1922b7742bSPatrick Williams commands = [ 2022b7742bSPatrick Williams import_module("libvoters.subcmd.analyze-commits"), 2122b7742bSPatrick Williams import_module("libvoters.subcmd.analyze-reviews"), 2222b7742bSPatrick Williams import_module("libvoters.subcmd.dump-gerrit"), 2322b7742bSPatrick Williams import_module("libvoters.subcmd.report"), 2422b7742bSPatrick Williams ] 2522b7742bSPatrick Williams commands = [x.subcmd(subparser) for x in commands] # type: ignore 26df917f87SPatrick Williams 27df917f87SPatrick Williams args = parser.parse_args() 28df917f87SPatrick Williams 29df917f87SPatrick Williams if "cmd" not in args: 30df917f87SPatrick Williams print("Missing subcommand!") 31df917f87SPatrick Williams return 1 32df917f87SPatrick Williams 33df917f87SPatrick Williams return int(args.cmd.run(args)) 34