diff --git a/main.go b/main.go index acb0b65..12bd465 100644 --- a/main.go +++ b/main.go @@ -6,6 +6,7 @@ import ( "io/ioutil" "os" "path/filepath" + "runtime/debug" "strings" "github.com/fatih/color" @@ -213,13 +214,30 @@ func init() { // Output build info (version, commit, date and builtBy) if versionFlag { - fmt.Printf( - "Version:\t%s\nCommit:\t\t%s\nBuilt\t\t%s by %s\n", - version, - commit, - date, - builtBy, - ) + var buildInfo string + if date != "unknown" && builtBy != "unknown" { + buildInfo = fmt.Sprintf("Built\t\t%s by %s\n", date, builtBy) + } + + if commit != "none" { + buildInfo = fmt.Sprintf("Commit:\t\t%s\n%s", commit, buildInfo) + } + + if version == "dev" { + bi, ok := debug.ReadBuildInfo() + if ok { + version = bi.Main.Version + if strings.HasPrefix(version, "v") { + version = bi.Main.Version[1:] + } + if len(buildInfo) == 0 { + fmt.Printf("version %s\n", version) + os.Exit(0) + } + } + } + + fmt.Printf("Version:\t%s\n%s", version, buildInfo) os.Exit(0) } }