stackforge-cli 0.1.2__tar.gz → 0.1.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. {stackforge_cli-0.1.2 → stackforge_cli-0.1.3}/PKG-INFO +1 -1
  2. {stackforge_cli-0.1.2 → stackforge_cli-0.1.3}/pyproject.toml +1 -1
  3. {stackforge_cli-0.1.2 → stackforge_cli-0.1.3}/src/stackforge/scaffold.py +19 -9
  4. {stackforge_cli-0.1.2 → stackforge_cli-0.1.3}/src/stackforge/ui.py +3 -3
  5. {stackforge_cli-0.1.2 → stackforge_cli-0.1.3}/src/stackforge_cli.egg-info/PKG-INFO +1 -1
  6. {stackforge_cli-0.1.2 → stackforge_cli-0.1.3}/README.md +0 -0
  7. {stackforge_cli-0.1.2 → stackforge_cli-0.1.3}/setup.cfg +0 -0
  8. {stackforge_cli-0.1.2 → stackforge_cli-0.1.3}/src/stackforge/__init__.py +0 -0
  9. {stackforge_cli-0.1.2 → stackforge_cli-0.1.3}/src/stackforge/engines/dotnet/__init__.py +0 -0
  10. {stackforge_cli-0.1.2 → stackforge_cli-0.1.3}/src/stackforge/engines/dotnet/api_generator.py +0 -0
  11. {stackforge_cli-0.1.2 → stackforge_cli-0.1.3}/src/stackforge/engines/dotnet/config_generator.py +0 -0
  12. {stackforge_cli-0.1.2 → stackforge_cli-0.1.3}/src/stackforge/engines/dotnet/csproj_generator.py +0 -0
  13. {stackforge_cli-0.1.2 → stackforge_cli-0.1.3}/src/stackforge/engines/dotnet/docker_generator.py +0 -0
  14. {stackforge_cli-0.1.2 → stackforge_cli-0.1.3}/src/stackforge/engines/dotnet/git_generator.py +0 -0
  15. {stackforge_cli-0.1.2 → stackforge_cli-0.1.3}/src/stackforge/engines/dotnet/layers_generator.py +0 -0
  16. {stackforge_cli-0.1.2 → stackforge_cli-0.1.3}/src/stackforge/engines/dotnet/program_generator.py +0 -0
  17. {stackforge_cli-0.1.2 → stackforge_cli-0.1.3}/src/stackforge/engines/dotnet/scaffolder.py +0 -0
  18. {stackforge_cli-0.1.2 → stackforge_cli-0.1.3}/src/stackforge/project_name.py +0 -0
  19. {stackforge_cli-0.1.2 → stackforge_cli-0.1.3}/src/stackforge/version.py +0 -0
  20. {stackforge_cli-0.1.2 → stackforge_cli-0.1.3}/src/stackforge_cli.egg-info/SOURCES.txt +0 -0
  21. {stackforge_cli-0.1.2 → stackforge_cli-0.1.3}/src/stackforge_cli.egg-info/dependency_links.txt +0 -0
  22. {stackforge_cli-0.1.2 → stackforge_cli-0.1.3}/src/stackforge_cli.egg-info/entry_points.txt +0 -0
  23. {stackforge_cli-0.1.2 → stackforge_cli-0.1.3}/src/stackforge_cli.egg-info/requires.txt +0 -0
  24. {stackforge_cli-0.1.2 → stackforge_cli-0.1.3}/src/stackforge_cli.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stackforge-cli
3
- Version: 0.1.2
3
+ Version: 0.1.3
4
4
  Summary: A CLI scaffolder for .NET Clean Architecture projects
5
5
  License: MIT
6
6
  Keywords: scaffolder,dotnet,clean-architecture,cli
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "stackforge-cli"
7
- version = "0.1.2"
7
+ version = "0.1.3"
8
8
  description = "A CLI scaffolder for .NET Clean Architecture projects"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -6,15 +6,22 @@ from stackforge import ui
6
6
  import sys
7
7
 
8
8
 
9
+ FRAMEWORK_CHOICES = frozenset({"dotnet", "django", "fastapi", "flask", "exit"})
10
+
11
+
9
12
  def select_framework() -> str:
10
13
  ui.info("\n Select a framework:\n")
11
- ui.menu_option("1", ".NET Clean Architecture (CQRS)")
12
- ui.menu_option("2", "Django [coming soon]", style=ui.Fore.YELLOW)
13
- ui.menu_option("3", "FastAPI [coming soon]", style=ui.Fore.YELLOW)
14
- ui.menu_option("4", "Flask [coming soon]", style=ui.Fore.YELLOW)
15
- ui.menu_option("5", "exit", style=ui.Fore.RED)
16
-
17
- choice = ui.prompt("\n Choice [1]:") or "1"
14
+ ui.menu_item("dotnet", ".NET Clean Architecture (CQRS)")
15
+ ui.menu_item("django", "Django [coming soon]", style=ui.Fore.YELLOW)
16
+ ui.menu_item("fastapi", "FastAPI [coming soon]", style=ui.Fore.YELLOW)
17
+ ui.menu_item("flask", "Flask [coming soon]", style=ui.Fore.YELLOW)
18
+ ui.menu_item("exit", "Exit", style=ui.Fore.RED)
19
+
20
+ choice = ui.prompt("\n Framework [dotnet]:").lower() or "dotnet"
21
+ if choice not in FRAMEWORK_CHOICES:
22
+ ui.error(f"Unknown framework '{choice}'.")
23
+ ui.step("Options: dotnet, django, fastapi, flask, exit\n")
24
+ return ""
18
25
  return choice
19
26
 
20
27
 
@@ -30,11 +37,14 @@ def main():
30
37
  while True:
31
38
  framework = select_framework()
32
39
 
33
- if framework == "5":
40
+ if not framework:
41
+ continue
42
+
43
+ if framework == "exit":
34
44
  ui.warn("\n Exiting...")
35
45
  break
36
46
 
37
- if framework != "1":
47
+ if framework != "dotnet":
38
48
  ui.warn("\n This framework is under development. Stay tuned!\n")
39
49
  continue
40
50
 
@@ -4,7 +4,7 @@ init(autoreset=True)
4
4
 
5
5
  __all__ = [
6
6
  "BANNER", "banner", "section", "step", "file_created", "success",
7
- "warn", "error", "info", "prompt", "menu_option", "done", "muted",
7
+ "warn", "error", "info", "prompt", "menu_item", "done", "muted",
8
8
  "Fore", "Style",
9
9
  ]
10
10
 
@@ -60,8 +60,8 @@ def prompt(label: str) -> str:
60
60
  return input(f" {Style.BRIGHT}{Fore.CYAN}{label}{Style.RESET_ALL} ").strip()
61
61
 
62
62
 
63
- def menu_option(number: str, label: str, *, style: str = Fore.GREEN) -> None:
64
- print(f" {style}{number}.{Style.RESET_ALL} {label}")
63
+ def menu_item(key: str, label: str, *, style: str = Fore.GREEN) -> None:
64
+ print(f" {style}{key:<10}{Style.RESET_ALL} {label}")
65
65
 
66
66
 
67
67
  def done() -> None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stackforge-cli
3
- Version: 0.1.2
3
+ Version: 0.1.3
4
4
  Summary: A CLI scaffolder for .NET Clean Architecture projects
5
5
  License: MIT
6
6
  Keywords: scaffolder,dotnet,clean-architecture,cli
File without changes
File without changes