Coverage for kwasa\main.py: 0%

21 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-04-14 18:06 +0300

1import argparse 

2from typing import Any 

3from kwasa.functions.main import GitCloner 

4 

5 

6class KwasaCliService(GitCloner): 

7 def handler(self) -> None: 

8 parser = argparse.ArgumentParser( 

9 prog="kwasa", 

10 description="Kwasa CLI - Scaffold and manage your starter projects with ease.", 

11 epilog="""Examples: 

12 kwasa clone <directory> 

13 kwasa clone --repo https://github.com/your/repo.git 

14 kwasa update""", 

15 formatter_class=argparse.RawDescriptionHelpFormatter, 

16 ) 

17 

18 subparsers = parser.add_subparsers(dest="command", required=True) 

19 clone_parser = subparsers.add_parser( 

20 "clone", 

21 help="Clone starter repo (https://github.com/dlion4/django-quick-starter.git)", 

22 ) 

23 clone_parser.add_argument( 

24 "directory", help="Directory to clone into (use '.' for current directory)" 

25 ) 

26 clone_parser.add_argument( 

27 "--repo", help="GitHub repository URL (default is the starter repo)" 

28 ) 

29 

30 subparsers.add_parser("update", help="Update current project (git fetch)") 

31 

32 args = parser.parse_args() 

33 if args.command == "clone": 

34 self.clone(args.repo, args) 

35 elif args.command == "update": 

36 self.update(args) 

37 

38 

39def main() -> None: 

40 cli: Any = KwasaCliService() 

41 cli.handler() 

42 

43 

44if __name__ == "__main__": 

45 main()