Add --version flag and enforce --long flags via pflag
Switches CLI flag parsing from Go's stdlib `flag` to spf13/pflag so `--project` (and the internal `--socket` / `--identity` / `--scenario` flags) are the only accepted form; single-hyphen long flags like `-project` are now rejected. Help output renders the canonical `--` form. Adds `patterm --version`, which prints the build version, short commit, and build date (e.g. `patterm v0.0.1 (commit abc1234, built 2026-05-14)`). The version string is injected at build time — `make patterm` derives it from `git describe --tags --always --dirty`, and the release workflow injects the pushed tag. Commit/date come from the Go toolchain's embedded VCS info via `runtime/debug.ReadBuildInfo`, so no manual bumping is required.
This commit is contained in:
15
CHANGELOG.md
15
CHANGELOG.md
@@ -6,6 +6,21 @@ loosely follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Added
|
||||
- `patterm --version` prints the build version, git commit, and build
|
||||
date (e.g. `patterm v0.0.1 (commit abc1234, built 2026-05-14)`). The
|
||||
version string is injected by the build (`make patterm` derives it
|
||||
from `git describe`; the release workflow injects the pushed tag).
|
||||
Commit and date come from the Go toolchain's embedded VCS info, so
|
||||
nothing has to be bumped by hand.
|
||||
|
||||
### Changed
|
||||
- CLI flag parsing switched from Go's stdlib `flag` to `spf13/pflag`.
|
||||
`--project` (and the internal `--socket` / `--identity` /
|
||||
`--scenario` / `--patterm-bin` flags) are now the only accepted form
|
||||
— single-hyphen long flags like `-project` are rejected. Help output
|
||||
renders the canonical `--flag` form.
|
||||
|
||||
## [0.0.1] - 2026-05-14
|
||||
|
||||
### Fixed
|
||||
|
||||
Reference in New Issue
Block a user