mox/moxvar/version.go

39 lines
735 B
Go
Raw Permalink Normal View History

2023-01-30 16:27:06 +03:00
// Package moxvar provides the version number of a mox build.
package moxvar
import (
"runtime/debug"
)
// Version is set at runtime based on the Go module used to build.
var Version = "(devel)"
func init() {
buildInfo, ok := debug.ReadBuildInfo()
if !ok {
return
}
Version = buildInfo.Main.Version
if Version == "(devel)" {
var vcsRev, vcsMod string
for _, setting := range buildInfo.Settings {
if setting.Key == "vcs.revision" {
vcsRev = setting.Value
} else if setting.Key == "vcs.modified" {
vcsMod = setting.Value
}
}
if vcsRev == "" {
return
}
Version = vcsRev
switch vcsMod {
case "false":
case "true":
Version += "+modifications"
default:
Version += "+unknown"
}
}
}