package main import ( "fmt" "runtime" "strconv" "time" "github.com/urfave/cli" ) // Overwritten at build time var ( // gitCommit is the commit that the binary is being built from. // It will be populated by the Makefile. gitCommit string // buildInfo is the time at which the binary was built // It will be populated by the Makefile. buildInfo string ) // versionCmd gets and prints version info for version command func versionCmd(c *cli.Context) error { fmt.Println("Version: ", c.App.Version) fmt.Println("Go Version: ", runtime.Version()) if gitCommit != "" { fmt.Println("Git Commit: ", gitCommit) } if buildInfo != "" { // Converts unix time from string to int64 buildTime, err := strconv.ParseInt(buildInfo, 10, 64) if err != nil { return err } // Prints out the build time in readable format fmt.Println("Built: ", time.Unix(buildTime, 0).Format(time.ANSIC)) } fmt.Println("OS/Arch: ", runtime.GOOS+"/"+runtime.GOARCH) return nil } // Cli command to print out the full version of kpod var versionCommand = cli.Command{ Name: "version", Usage: "Display the KPOD Version Information", Action: versionCmd, }