// 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" ) // GetVersion returns the current git commit hash. // If the version is modified the hash ends in "-dirty" 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 } // GetVersion returns the current git commit hash. // This function does not add the "-dirty" string at the end of the hash. func GetVersionPure() 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", revision) } return revision }