Merge pull request #2720 from darkowlzz/formatversion-json

feat(helm): add --template flag to `helm version`
pull/3499/head
Matthew Fisher 7 years ago committed by GitHub
commit 4506b393ef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -55,6 +55,7 @@ type versionCmd struct {
showClient bool showClient bool
showServer bool showServer bool
short bool short bool
template string
} }
func newVersionCmd(c helm.Interface, out io.Writer) *cobra.Command { func newVersionCmd(c helm.Interface, out io.Writer) *cobra.Command {
@ -85,18 +86,26 @@ func newVersionCmd(c helm.Interface, out io.Writer) *cobra.Command {
f.BoolVarP(&version.showClient, "client", "c", false, "client version only") f.BoolVarP(&version.showClient, "client", "c", false, "client version only")
f.BoolVarP(&version.showServer, "server", "s", false, "server version only") f.BoolVarP(&version.showServer, "server", "s", false, "server version only")
f.BoolVar(&version.short, "short", false, "print the version number") f.BoolVar(&version.short, "short", false, "print the version number")
f.StringVar(&version.template, "template", "", "template for version string format")
return cmd return cmd
} }
func (v *versionCmd) run() error { func (v *versionCmd) run() error {
// Store map data for template rendering
data := map[string]interface{}{}
if v.showClient { if v.showClient {
cv := version.GetVersionProto() cv := version.GetVersionProto()
fmt.Fprintf(v.out, "Client: %s\n", formatVersion(cv, v.short)) if v.template != "" {
data["Client"] = cv
} else {
fmt.Fprintf(v.out, "Client: %s\n", formatVersion(cv, v.short))
}
} }
if !v.showServer { if !v.showServer {
return nil return tpl(v.template, data, v.out)
} }
if settings.Debug { if settings.Debug {
@ -115,8 +124,13 @@ func (v *versionCmd) run() error {
debug("%s", err) debug("%s", err)
return errors.New("cannot connect to Tiller") return errors.New("cannot connect to Tiller")
} }
fmt.Fprintf(v.out, "Server: %s\n", formatVersion(resp.Version, v.short))
return nil if v.template != "" {
data["Server"] = resp.Version
} else {
fmt.Fprintf(v.out, "Server: %s\n", formatVersion(resp.Version, v.short))
}
return tpl(v.template, data, v.out)
} }
func getK8sVersion() (*apiVersion.Info, error) { func getK8sVersion() (*apiVersion.Info, error) {

@ -38,6 +38,7 @@ func TestVersion(t *testing.T) {
{"default", true, true, []string{}, false}, {"default", true, true, []string{}, false},
{"client", true, false, []string{"-c"}, false}, {"client", true, false, []string{"-c"}, false},
{"server", false, true, []string{"-s"}, false}, {"server", false, true, []string{"-s"}, false},
{"template", true, true, []string{"--template='{{ .Client.SemVer }} {{ .Server.SemVer }}'"}, false},
} }
settings.TillerHost = "fake-localhost" settings.TillerHost = "fake-localhost"

@ -33,6 +33,7 @@ helm version
-c, --client client version only -c, --client client version only
-s, --server server version only -s, --server server version only
--short print the version number --short print the version number
--template string template for version string format
--tls enable TLS for request --tls enable TLS for request
--tls-ca-cert string path to TLS CA certificate file (default "$HELM_HOME/ca.pem") --tls-ca-cert string path to TLS CA certificate file (default "$HELM_HOME/ca.pem")
--tls-cert string path to TLS certificate file (default "$HELM_HOME/cert.pem") --tls-cert string path to TLS certificate file (default "$HELM_HOME/cert.pem")
@ -53,4 +54,4 @@ helm version
### SEE ALSO ### SEE ALSO
* [helm](helm.md) - The Helm package manager for Kubernetes. * [helm](helm.md) - The Helm package manager for Kubernetes.
###### Auto generated by spf13/cobra on 25-Jan-2018 ###### Auto generated by spf13/cobra on 11-Feb-2018

Loading…
Cancel
Save