show version in UI

This commit is contained in:
2026-03-09 09:43:13 +11:00
parent c796f1324e
commit 76851f0816
4 changed files with 107 additions and 6 deletions

59
cmd/ingestd/buildinfo.go Normal file
View File

@@ -0,0 +1,59 @@
package main
import (
"runtime/debug"
"strings"
)
var (
version = "dev"
gitCommit = "unknown"
buildTime = "unknown"
)
type binaryBuildInfo struct {
Version string `json:"version"`
GitCommit string `json:"git_commit"`
BuildTime string `json:"build_time"`
}
func currentBuildInfo() binaryBuildInfo {
out := binaryBuildInfo{
Version: version,
GitCommit: gitCommit,
BuildTime: buildTime,
}
if bi, ok := debug.ReadBuildInfo(); ok {
if out.Version == "" || out.Version == "dev" {
if bi.Main.Version != "" && bi.Main.Version != "(devel)" {
out.Version = bi.Main.Version
}
}
for _, s := range bi.Settings {
if s.Key == "vcs.revision" && (out.GitCommit == "" || out.GitCommit == "unknown") {
if len(s.Value) > 12 {
out.GitCommit = s.Value[:12]
} else {
out.GitCommit = s.Value
}
}
if s.Key == "vcs.time" && (out.BuildTime == "" || out.BuildTime == "unknown") {
out.BuildTime = s.Value
}
}
}
out.Version = normalizeBuildField(out.Version, "dev")
out.GitCommit = normalizeBuildField(out.GitCommit, "unknown")
out.BuildTime = normalizeBuildField(out.BuildTime, "unknown")
return out
}
func normalizeBuildField(v string, fallback string) string {
v = strings.TrimSpace(v)
if v == "" {
return fallback
}
return v
}