mirror of https://github.com/status-im/consul.git
43 lines
1016 B
Go
43 lines
1016 B
Go
package command
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/hashicorp/consul/agent/config"
|
|
"github.com/hashicorp/consul/agent/consul"
|
|
"github.com/mitchellh/cli"
|
|
)
|
|
|
|
// VersionCommand is a Command implementation prints the version.
|
|
type VersionCommand struct {
|
|
HumanVersion string
|
|
UI cli.Ui
|
|
}
|
|
|
|
func (c *VersionCommand) Help() string {
|
|
return ""
|
|
}
|
|
|
|
func (c *VersionCommand) Run(_ []string) int {
|
|
c.UI.Output(fmt.Sprintf("Consul %s", c.HumanVersion))
|
|
|
|
rpcProtocol, err := config.DefaultRPCProtocol()
|
|
if err != nil {
|
|
c.UI.Error(err.Error())
|
|
return 2
|
|
}
|
|
var supplement string
|
|
if rpcProtocol < consul.ProtocolVersionMax {
|
|
supplement = fmt.Sprintf(" (agent will automatically use protocol >%d when speaking to compatible agents)",
|
|
rpcProtocol)
|
|
}
|
|
c.UI.Output(fmt.Sprintf("Protocol %d spoken by default, understands %d to %d%s",
|
|
rpcProtocol, consul.ProtocolVersionMin, consul.ProtocolVersionMax, supplement))
|
|
|
|
return 0
|
|
}
|
|
|
|
func (c *VersionCommand) Synopsis() string {
|
|
return "Prints the Consul version"
|
|
}
|