30 lines
624 B
Go
30 lines
624 B
Go
package main
|
|
|
|
import (
|
|
"os"
|
|
"strings"
|
|
)
|
|
|
|
// Version is set at build time via:
|
|
//
|
|
// go build -ldflags "-X main.Version=$(cat VERSION)"
|
|
//
|
|
// Falls back to reading /VERSION or ./VERSION for container/local runs
|
|
// without ldflags. Final fallback is "dev".
|
|
var Version = "dev"
|
|
|
|
func init() {
|
|
if Version != "dev" {
|
|
return
|
|
}
|
|
// Try well-known paths: container (/VERSION), repo root (../VERSION, ./VERSION)
|
|
for _, path := range []string{"/VERSION", "VERSION", "../VERSION"} {
|
|
if data, err := os.ReadFile(path); err == nil {
|
|
if v := strings.TrimSpace(string(data)); v != "" {
|
|
Version = v
|
|
return
|
|
}
|
|
}
|
|
}
|
|
}
|