Files
Memoh/internal/version/version.go
T

46 lines
1.0 KiB
Go

package version
import (
"fmt"
"runtime/debug"
)
var (
// Version is the current version of the application.
// It can be overridden by ldflags at build time.
Version = "dev"
// CommitHash is the git commit hash at build time.
// It can be overridden by ldflags at build time.
CommitHash = ""
// BuildTime is the time when the application was built.
// It can be overridden by ldflags at build time.
BuildTime = ""
)
// GetInfo returns a formatted version string including the version and commit hash.
func GetInfo() string {
if CommitHash == "" {
if info, ok := debug.ReadBuildInfo(); ok {
for _, setting := range info.Settings {
if setting.Key == "vcs.revision" {
CommitHash = setting.Value
}
if setting.Key == "vcs.time" {
BuildTime = setting.Value
}
}
}
}
res := Version
if CommitHash != "" {
// Only use the first 7 characters of the commit hash if it's long
shortHash := CommitHash
if len(shortHash) > 7 {
shortHash = shortHash[:7]
}
res += fmt.Sprintf(" (%s)", shortHash)
}
return res
}