github.com/Finschia/finschia-sdk@v0.48.1/version/command.go (about) 1 package version 2 3 import ( 4 "encoding/json" 5 "strings" 6 7 "github.com/Finschia/ostracon/libs/cli" 8 "github.com/spf13/cobra" 9 yaml "gopkg.in/yaml.v2" 10 ) 11 12 const flagLong = "long" 13 14 // NewVersionCommand returns a CLI command to interactively print the application binary version information. 15 func NewVersionCommand() *cobra.Command { 16 cmd := &cobra.Command{ 17 Use: "version", 18 Short: "Print the application binary version information", 19 RunE: func(cmd *cobra.Command, _ []string) error { 20 verInfo := NewInfo() 21 22 if long, _ := cmd.Flags().GetBool(flagLong); !long { 23 cmd.Println(verInfo.Version) 24 return nil 25 } 26 27 var ( 28 bz []byte 29 err error 30 ) 31 32 output, _ := cmd.Flags().GetString(cli.OutputFlag) 33 switch strings.ToLower(output) { 34 case "json": 35 bz, err = json.Marshal(verInfo) 36 37 default: 38 bz, err = yaml.Marshal(&verInfo) 39 } 40 41 if err != nil { 42 return err 43 } 44 45 cmd.Println(string(bz)) 46 return nil 47 }, 48 } 49 50 cmd.Flags().Bool(flagLong, false, "Print long version information") 51 cmd.Flags().StringP(cli.OutputFlag, "o", "text", "Output format (text|json)") 52 53 return cmd 54 }