github.com/criteo-forks/consul@v1.4.5-criteonogrpc/command/version/version.go (about) 1 package version 2 3 import ( 4 "fmt" 5 6 "github.com/hashicorp/consul/agent/config" 7 "github.com/hashicorp/consul/agent/consul" 8 "github.com/mitchellh/cli" 9 ) 10 11 func New(ui cli.Ui, version string) *cmd { 12 return &cmd{UI: ui, version: version} 13 } 14 15 type cmd struct { 16 UI cli.Ui 17 version string 18 } 19 20 func (c *cmd) Run(_ []string) int { 21 c.UI.Output(fmt.Sprintf("Consul %s", c.version)) 22 23 rpcProtocol, err := config.DefaultRPCProtocol() 24 if err != nil { 25 c.UI.Error(err.Error()) 26 return 2 27 } 28 var supplement string 29 if rpcProtocol < consul.ProtocolVersionMax { 30 supplement = fmt.Sprintf(" (agent will automatically use protocol >%d when speaking to compatible agents)", 31 rpcProtocol) 32 } 33 c.UI.Output(fmt.Sprintf("Protocol %d spoken by default, understands %d to %d%s", 34 rpcProtocol, consul.ProtocolVersionMin, consul.ProtocolVersionMax, supplement)) 35 36 return 0 37 } 38 39 func (c *cmd) Synopsis() string { 40 return "Prints the Consul version" 41 } 42 43 func (c *cmd) Help() string { 44 return "" 45 }