feat: include version info in the binaries

This commit is contained in:
5684185+vsariola@users.noreply.github.com
2024-09-15 18:07:38 +03:00
parent f8c522873c
commit 2b38e11643
6 changed files with 69 additions and 4 deletions

37
version/version.go Normal file
View File

@ -0,0 +1,37 @@
package version
import "runtime/debug"
// You can set the version at build time using something like:
// go build -ldflags "-X github.com/vsariola/sointu/version.Version=$(git describe --dirty)"
var Version string
var Hash = func() string {
if info, ok := debug.ReadBuildInfo(); ok {
modified := false
for _, setting := range info.Settings {
if setting.Key == "vcs.modified" && setting.Value == "true" {
modified = true
break
}
}
for _, setting := range info.Settings {
if setting.Key == "vcs.revision" {
shortHash := setting.Value[:7]
if modified {
return shortHash + "-dirty"
}
return shortHash
}
}
}
return ""
}()
var VersionOrHash = func() string {
if Version != "" {
return Version
}
return Hash
}()