diff --git a/internal/app/app.go b/internal/app/app.go index 6fed0194..1d96965f 100644 --- a/internal/app/app.go +++ b/internal/app/app.go @@ -7,6 +7,7 @@ import ( "os/exec" "runtime" "runtime/debug" + "strings" ) var ( @@ -91,6 +92,14 @@ func Init() { func readRevisionTime() (revision, vcsTime string) { if info, ok := debug.ReadBuildInfo(); ok { + // Rewrite version from -buildvcs info if it is valid. + // Format for tagged version: v1.9.13 + // Format for custom commit: v1.9.14-0.20251215184105-753d6617ab58 + // Format for modified code: v1.9.14-0.20251215184105-753d6617ab58+dirty + if s, ok := strings.CutPrefix(info.Main.Version, "v"); ok { + Version = s + } + for _, setting := range info.Settings { switch setting.Key { case "vcs.revision": @@ -103,7 +112,7 @@ func readRevisionTime() (revision, vcsTime string) { vcsTime = setting.Value case "vcs.modified": if setting.Value == "true" { - revision = "mod." + revision + revision += "+dirty" } } } diff --git a/main.go b/main.go index 72946013..df5322eb 100644 --- a/main.go +++ b/main.go @@ -49,6 +49,7 @@ import ( ) func main() { + // version will be set later from -buildvcs info, this used only as fallback app.Version = "1.9.13" type module struct {