/ manage.py
manage.py
1 import argparse 2 import importlib 3 from typing import Literal 4 5 type CommandName = Literal["makerules"] 6 7 8 def run_command(command: CommandName, args: dict[str, str | int]) -> None: 9 module = importlib.import_module(f"commands.{command}") 10 module.run(**args) 11 12 13 def main() -> None: 14 parser = argparse.ArgumentParser() 15 subparsers = parser.add_subparsers(dest="command", required=True) 16 17 parser_makerules = subparsers.add_parser("makerules", help="create rules from rulesets") 18 parser_makerules.add_argument("ruleset", default="all", help="ruleset file, can be set to 'all'") 19 parser_makerules.add_argument("--prune", action="store_true", default=False, help="prune all rules from ruleset") 20 21 args = vars(parser.parse_args()) 22 command = args.pop("command") 23 24 run_command(command, args) 25 26 27 if __name__ == "__main__": 28 main()