From 93a137d98227d9ff0744a61b6e3b64ceb6b80300 Mon Sep 17 00:00:00 2001 From: ayn2op Date: Thu, 30 Jul 2026 23:37:01 -0400 Subject: [PATCH] feat(cmd): add version flag (#822) --- cmd/root.go | 6 ++++++ cmd/version.go | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 cmd/version.go diff --git a/cmd/root.go b/cmd/root.go index 652be06..b0aafab 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -17,8 +17,14 @@ func Run() error { configPath := flag.String("config-path", config.DefaultPath(), "path of the configuration file") logPath := flag.String("log-path", logger.DefaultPath(), "path of the log file") logLevel := flag.String("log-level", "info", "log level") + showVersion := flag.Bool("version", false, "print version and exit") flag.Parse() + if *showVersion { + fmt.Printf("%s\n", buildVersion()) + return nil + } + var level slog.Level switch *logLevel { case "debug": diff --git a/cmd/version.go b/cmd/version.go new file mode 100644 index 0000000..4976a18 --- /dev/null +++ b/cmd/version.go @@ -0,0 +1,18 @@ +package cmd + +import ( + "runtime/debug" +) + +func buildVersion() string { + info, ok := debug.ReadBuildInfo() + if !ok { + return "unknown" + } + switch info.Main.Version { + case "", "(devel)": + return "v0.0.0-dev" + default: + return info.Main.Version + } +}