mirror of
https://github.com/memohai/Memoh.git
synced 2026-04-25 07:00:48 +09:00
46 lines
1.0 KiB
Go
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
|
|
}
|