Coverage for kwasa\main.py: 0%
21 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-14 18:06 +0300
« 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
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 )
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 )
30 subparsers.add_parser("update", help="Update current project (git fetch)")
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)
39def main() -> None:
40 cli: Any = KwasaCliService()
41 cli.handler()
44if __name__ == "__main__":
45 main()