From 0c41f76f5396351152e6d60b7dbebc62b0253f11 Mon Sep 17 00:00:00 2001 From: Nicolas Carlier Date: Sun, 11 Aug 2024 07:00:34 +0000 Subject: [PATCH] chore: set version when built outside makefile close #103 --- pkg/version/version.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/pkg/version/version.go b/pkg/version/version.go index eedb315..8d0a950 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -3,6 +3,8 @@ package version import ( "flag" "fmt" + "runtime/debug" + "time" ) // Version of the app @@ -28,3 +30,26 @@ This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. `, Version, GitCommit, Built) } + +func init() { + if GitCommit != "snapshot" { + return + } + info, ok := debug.ReadBuildInfo() + if !ok { + return + } + Version = info.Main.Version + for _, kv := range info.Settings { + if kv.Value == "" { + continue + } + switch kv.Key { + case "vcs.revision": + GitCommit = kv.Value[:7] + case "vcs.time": + lastCommit, _ := time.Parse(time.RFC3339, kv.Value) + Built = lastCommit.Format(time.RFC1123) + } + } +}