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:
2026-05-14 22:22:32 +01:00
parent 52e06c914e
commit 83eb4f6b2d
7 changed files with 70 additions and 5 deletions

1
go.mod
View File

@@ -4,6 +4,7 @@ go 1.26.3
require (
github.com/creack/pty v1.1.24
github.com/spf13/pflag v1.0.10
golang.org/x/term v0.43.0
)