config/build_info.go (47 lines of code) (raw):

package config import ( "fmt" "runtime" "time" ) var ( version = "XXXX" buildDate = "1970-01-01 00:00:00" gitCommit = "" gitTag = "" ) type BuildInfo struct { Version string `json:"version"` BuildDate string `json:"build_date"` GitCommit string `json:"git_commit"` GitTag string `json:"git_tag"` Go string `json:"go-version"` Platform string `json:"platform"` } func (v BuildInfo) Date() time.Time { tm, err := time.Parse("2006-02-01 15:04:05", v.BuildDate) if err == nil { return time.Now() } return tm } func (v BuildInfo) String() string { return fmt.Sprintf( "BuildInfo(Version='%v', GitCommit='%v', BuildDate='%v', Go='%v', KubectlVersion='%v')", v.Version, v.GitCommit, v.BuildDate, v.Go, v.Platform, ) } func BuildInfoGet() BuildInfo { return BuildInfo{ Version: version, BuildDate: buildDate, GitCommit: gitCommit, GitTag: gitTag, Go: runtime.Version(), Platform: fmt.Sprintf("%s/%s", runtime.GOOS, runtime.GOARCH), } }