package cmd import ( "fmt" "github.com/spf13/cobra" "runtime" ) var versionCmd = &cobra.Command{ Use: "version", Short: "print version of zrepl binary (for running daemon 'zrepl control version' command)", Run: doVersion, } func init() { RootCmd.AddCommand(versionCmd) } func doVersion(cmd *cobra.Command, args []string) { fmt.Println(NewZreplVersionInformation().String()) } type ZreplVersionInformation struct { Version string RuntimeGOOS string RuntimeGOARCH string RUNTIMECompiler string } func NewZreplVersionInformation() *ZreplVersionInformation { return &ZreplVersionInformation{ Version: zreplVersion, RuntimeGOOS: runtime.GOOS, RuntimeGOARCH: runtime.GOARCH, RUNTIMECompiler: runtime.Compiler, } } func (i *ZreplVersionInformation) String() string { return fmt.Sprintf("zrepl version=%s GOOS=%s GOARCH=%s Compiler=%s", i.Version, i.RuntimeGOOS, i.RuntimeGOARCH, i.RUNTIMECompiler) }