/ 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()