mirror of
https://github.com/lyx0/nourybot.git
synced 2024-11-13 19:49:55 +01:00
42 lines
707 B
Go
42 lines
707 B
Go
|
// File pretty much completely stolen from a generated
|
||
|
// Autostrada project I used a while ago. They don't
|
||
|
// require attribution but I still want to give them
|
||
|
// credit for their amazing project.
|
||
|
// https://autostrada.dev/
|
||
|
|
||
|
package common
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"runtime/debug"
|
||
|
)
|
||
|
|
||
|
func GetVersion() string {
|
||
|
var revision string
|
||
|
var modified bool
|
||
|
|
||
|
bi, ok := debug.ReadBuildInfo()
|
||
|
if ok {
|
||
|
for _, s := range bi.Settings {
|
||
|
switch s.Key {
|
||
|
case "vcs.revision":
|
||
|
revision = s.Value
|
||
|
case "vcs.modified":
|
||
|
if s.Value == "true" {
|
||
|
modified = true
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if revision == "" {
|
||
|
return "unavailable"
|
||
|
}
|
||
|
|
||
|
if modified {
|
||
|
return fmt.Sprintf("%s-dirty", revision)
|
||
|
}
|
||
|
|
||
|
return revision
|
||
|
}
|