srdusr
aboutsummaryrefslogtreecommitdiffstats
path: root/internal/version/version.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/version/version.go')
-rw-r--r--internal/version/version.go30
1 files changed, 30 insertions, 0 deletions
diff --git a/internal/version/version.go b/internal/version/version.go
new file mode 100644
index 0000000..030bd4e
--- /dev/null
+++ b/internal/version/version.go
@@ -0,0 +1,30 @@
+// Package version holds build-time version information for both
+// binaries, set via -ldflags "-X mitmux/internal/version.Version=..."
+// (see the Makefile's release target). Defaults to "dev" for a plain
+// `go build` with no ldflags, so `-version` is never blank or
+// misleading about whether a given binary is a tagged release or a
+// local build.
+package version
+
+var (
+ Version = "dev"
+ Commit = ""
+ Date = ""
+)
+
+// String returns a one-line version summary for component ("mitmux" or
+// "mitmuxd"): "mitmux dev" for an untagged build, or
+// "mitmux 1.2.3 (abc1234, 2026-01-02)" once Commit/Date are set.
+func String(component string) string {
+ s := component + " " + Version
+ if Commit != "" || Date != "" {
+ s += " ("
+ s += Commit
+ if Commit != "" && Date != "" {
+ s += ", "
+ }
+ s += Date
+ s += ")"
+ }
+ return s
+}