Files
ReleaseKit/internal/runtimeinfo/version.go

27 lines
710 B
Go

// Package runtimeinfo implements the private runtime version state used by the
// public buildinfo facade.
package runtimeinfo
import "runtime/debug"
var injectedVersion string
// Version returns the injected version or the running executable's main module
// version, falling back to "dev" when neither provides a release identifier.
func Version() string {
return version(injectedVersion, debug.ReadBuildInfo)
}
func version(injected string, readBuildInfo func() (*debug.BuildInfo, bool)) string {
if injected != "" {
return injected
}
info, ok := readBuildInfo()
if ok && info != nil && info.Main.Version != "" && info.Main.Version != "(devel)" {
return info.Main.Version
}
return "dev"
}