mox/moxvar/version.go
Mechiel Lukkien cb229cb6cf
mox!
2023-01-30 14:27:06 +01:00

38 lines
735 B
Go

// 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"
}
}
}