Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/0001-version-flag.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"pan-scm-cli": patch
---

Add `--version` (and `-V`) flag to the top-level `scm` command so users can quickly check the installed CLI version.
16 changes: 16 additions & 0 deletions src/scm_cli/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -300,13 +300,29 @@ def get_region_override() -> str | None:
return _region_override


def _version_callback(value: bool) -> None:
if value:
from scm_cli import __version__

typer.echo(__version__)
raise typer.Exit()


@app.callback()
def callback(
region: str | None = typer.Option(
None,
"--region",
help="Override SCM API region for this invocation",
),
version: bool | None = typer.Option(
None,
"--version",
"-V",
help="Show the CLI version and exit",
callback=_version_callback,
is_eager=True,
),
):
"""Manage Palo Alto Networks Strata Cloud Manager (SCM) configurations.

Expand Down
18 changes: 18 additions & 0 deletions tests/test_main.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,21 @@ def test_load_command_help(runner):
assert "network" in result.stdout
assert "object" in result.stdout
assert "security" in result.stdout


def test_version_flag(runner):
"""`scm --version` prints the installed version and exits 0."""
from scm_cli import __version__

result = runner.invoke(app, ["--version"])
assert result.exit_code == 0
assert __version__ in result.stdout


def test_version_short_flag(runner):
"""`scm -V` is an alias for --version."""
from scm_cli import __version__

result = runner.invoke(app, ["-V"])
assert result.exit_code == 0
assert __version__ in result.stdout
Loading