Skip to content

Commit f42cd8b

Browse files
authored
Merge pull request #23 from cloudengine-labs/copilot/add-help-output-command
Show help + examples when running `python -m cli.devopsos` with no arguments
2 parents da00c0d + c99db1a commit f42cd8b

File tree

2 files changed

+34
-3
lines changed

2 files changed

+34
-3
lines changed

cli/devopsos.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def _version_callback(value: bool) -> None:
3333
raise typer.Exit()
3434

3535

36-
app = typer.Typer(help="Unified DevOps-OS CLI tool")
36+
app = typer.Typer(no_args_is_help=True)
3737

3838

3939
@app.callback()
@@ -47,7 +47,22 @@ def main(
4747
is_eager=True,
4848
),
4949
) -> None:
50-
"""DevOps-OS: automate your entire DevOps lifecycle."""
50+
"""DevOps-OS: automate your entire DevOps lifecycle.
51+
52+
\b
53+
Examples:
54+
55+
python -m cli.devopsos init # interactive project setup wizard
56+
python -m cli.devopsos scaffold gha --help # GitHub Actions scaffold options
57+
python -m cli.devopsos scaffold gitlab --type build # GitLab CI build pipeline
58+
python -m cli.devopsos scaffold argocd --app-name my-app # Argo CD application manifest
59+
python -m cli.devopsos scaffold jenkins --help # Jenkins pipeline options
60+
python -m cli.devopsos scaffold sre --help # SRE resources (SLOs, alerts, dashboards)
61+
python -m cli.devopsos scaffold devcontainer --help # dev container configuration
62+
python -m cli.devopsos scaffold cicd --help # combined CI/CD scaffold
63+
python -m cli.devopsos process-first # Process-First SDLC overview
64+
python -m cli.devopsos --version # show installed version
65+
"""
5166

5267
# ---------------------------------------------------------------------------
5368
# scaffold sub-app — each scaffold target is a proper Typer subcommand so

cli/test_cli.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,23 @@ def _strip_ansi(s):
2626

2727
def test_help():
2828
result = _run(["-m", "cli.devopsos", "--help"])
29-
assert "Unified DevOps-OS CLI tool" in result.stdout
29+
assert result.returncode == 0
30+
out = _strip_ansi(result.stdout)
31+
assert "DevOps-OS" in out
32+
assert "scaffold" in out
33+
assert "init" in out
34+
assert "Examples:" in out
35+
36+
37+
def test_no_args_shows_help():
38+
"""Running without arguments should display help output (not an error)."""
39+
result = _run(["-m", "cli.devopsos"])
40+
assert result.returncode == 0
41+
out = _strip_ansi(result.stdout)
42+
assert "DevOps-OS" in out
43+
assert "scaffold" in out
44+
assert "Examples:" in out
45+
assert "python -m cli.devopsos init" in out
3046

3147

3248
def test_init_help_shows_dir_option():

0 commit comments

Comments
 (0)