Coverage for heliumcli/main.py: 100.00%
27 statements
« prev ^ index » next coverage.py v7.3.2, created at 2023-11-21 23:41 +0000
« prev ^ index » next coverage.py v7.3.2, created at 2023-11-21 23:41 +0000
1#!/usr/bin/env python
3import argparse
4import sys
6from heliumcli.actions.listbuilds import ListBuildsAction
7from . import utils
8from .actions.buildrelease import BuildReleaseAction
9from .actions.deploybuild import DeployBuildAction
10from .actions.init import InitAction
11from .actions.prepcode import PrepCodeAction
12from .actions.setbuild import SetBuildAction
13from .actions.startservers import StartServersAction
14from .actions.update import UpdateAction
15from .actions.updateprojects import UpdateProjectsAction
17__author__ = "Alex Laird"
18__copyright__ = "Copyright 2018, Helium Edu"
19__version__ = "1.6.0"
22def main(argv):
23 actions = {
24 InitAction(),
25 UpdateAction(),
26 UpdateProjectsAction(),
27 SetBuildAction(),
28 StartServersAction(),
29 PrepCodeAction(),
30 BuildReleaseAction(),
31 DeployBuildAction(),
32 ListBuildsAction(),
33 }
35 parser = argparse.ArgumentParser(prog="helium-cli")
36 parser.add_argument("--silent", action="store_true", help="Run quietly without displaying decorations")
37 subparsers = parser.add_subparsers(title="subcommands")
39 if "--silent" not in argv:
40 print(utils.get_title())
42 for action in actions:
43 action.setup(subparsers)
45 if len(argv) == 1: # pragma: no cover
46 parser.print_help()
48 return
50 args = parser.parse_args(argv[1:])
52 if not hasattr(args, "action"): # pragma: no cover
53 parser.print_help()
55 return
57 args.action.run(args)
59 print("")
62if __name__ == "__main__":
63 main(sys.argv)