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

1#!/usr/bin/env python 

2 

3import argparse 

4import sys 

5 

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 

16 

17__author__ = "Alex Laird" 

18__copyright__ = "Copyright 2018, Helium Edu" 

19__version__ = "1.6.0" 

20 

21 

22def main(argv): 

23 actions = { 

24 InitAction(), 

25 UpdateAction(), 

26 UpdateProjectsAction(), 

27 SetBuildAction(), 

28 StartServersAction(), 

29 PrepCodeAction(), 

30 BuildReleaseAction(), 

31 DeployBuildAction(), 

32 ListBuildsAction(), 

33 } 

34 

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") 

38 

39 if "--silent" not in argv: 

40 print(utils.get_title()) 

41 

42 for action in actions: 

43 action.setup(subparsers) 

44 

45 if len(argv) == 1: # pragma: no cover 

46 parser.print_help() 

47 

48 return 

49 

50 args = parser.parse_args(argv[1:]) 

51 

52 if not hasattr(args, "action"): # pragma: no cover 

53 parser.print_help() 

54 

55 return 

56 

57 args.action.run(args) 

58 

59 print("") 

60 

61 

62if __name__ == "__main__": 

63 main(sys.argv)