Spaces:
Starting on A100
Starting on A100
| """Slash command parser and handler for GovOn CLI.""" | |
| COMMANDS: dict[str, str] = { | |
| "/help": "μ¬μ© κ°λ₯ν λͺ λ Ήκ³Ό λμλ§μ νμν©λλ€.", | |
| "/clear": "ν°λ―Έλ νλ©΄μ μ΄κΈ°νν©λλ€.", | |
| "/exit": "μ Έμ μ’ λ£ν©λλ€.", | |
| } | |
| _HELP_TEXT = """GovOn CLI μ¬μ©λ² | |
| ββββββββββββββββββββββββββββββββββββββββ | |
| govon μΈν°λν°λΈ REPL λͺ¨λ | |
| govon "μ§λ¬Έ" λ¨λ° μ€ν λͺ¨λ | |
| govon --session <id> κΈ°μ‘΄ μΈμ μ¬κ° | |
| govon --session <id> "μ§λ¬Έ" κΈ°μ‘΄ μΈμ μμ λ¨λ° μ€ν | |
| govon --status daemon μν νμΈ | |
| govon --stop daemon μ€μ§ | |
| μ¬λμ λͺ λ Ή | |
| ββββββββββββββββββββββββββββββββββββββββ""" | |
| for _cmd, _desc in COMMANDS.items(): | |
| _HELP_TEXT += f"\n {_cmd:<10} {_desc}" | |
| _HELP_TEXT += "\nββββββββββββββββββββββββββββββββββββββββ\nμ 무 μμ²μ μμ°μ΄λ‘ μ§μ μ λ ₯νμΈμ." | |
| def is_command(text: str) -> bool: | |
| """Return True if text is a slash command.""" | |
| return text.strip().startswith("/") | |
| def handle_command(text: str) -> str | None: | |
| """Execute a slash command and return a result string, or None. | |
| Raises SystemExit for /exit. | |
| """ | |
| cmd = text.strip().split()[0].lower() | |
| if cmd == "/help": | |
| return _HELP_TEXT | |
| if cmd == "/clear": | |
| print("\033[2J\033[H", end="", flush=True) | |
| return None | |
| if cmd == "/exit": | |
| raise SystemExit(0) | |
| return f"μ μ μλ λͺ λ Ήμ λλ€: {cmd}\n/helpλ₯Ό μ λ ₯νμΈμ." | |