mirror of https://github.com/hashicorp/consul
42 lines
940 B
Go
42 lines
940 B
Go
package command
|
|
|
|
import (
|
|
"bytes"
|
|
"fmt"
|
|
"github.com/hashicorp/consul/consul"
|
|
"github.com/mitchellh/cli"
|
|
)
|
|
|
|
// VersionCommand is a Command implementation prints the version.
|
|
type VersionCommand struct {
|
|
Revision string
|
|
Version string
|
|
VersionPrerelease string
|
|
Ui cli.Ui
|
|
}
|
|
|
|
func (c *VersionCommand) Help() string {
|
|
return ""
|
|
}
|
|
|
|
func (c *VersionCommand) Run(_ []string) int {
|
|
var versionString bytes.Buffer
|
|
fmt.Fprintf(&versionString, "Consul v%s", c.Version)
|
|
if c.VersionPrerelease != "" {
|
|
fmt.Fprintf(&versionString, ".%s", c.VersionPrerelease)
|
|
|
|
if c.Revision != "" {
|
|
fmt.Fprintf(&versionString, " (%s)", c.Revision)
|
|
}
|
|
}
|
|
|
|
c.Ui.Output(versionString.String())
|
|
c.Ui.Output(fmt.Sprintf("Consul Protocol: %d (Understands back to: %d)",
|
|
consul.ProtocolVersionMax, consul.ProtocolVersionMin))
|
|
return 0
|
|
}
|
|
|
|
func (c *VersionCommand) Synopsis() string {
|
|
return "Prints the Consul version"
|
|
}
|