From 243fc9352a7d4a56ff3c4172fdd1000e6fba52aa Mon Sep 17 00:00:00 2001 From: Ryan SIU Date: Fri, 6 Sep 2019 12:02:33 +0800 Subject: [PATCH] Support the legacy client flag for better backward compatibility Signed-off-by: Ryan SIU --- cmd/helm/testdata/output/version-client.txt | 1 + .../testdata/output/version-short-client.txt | 1 + cmd/helm/version.go | 16 +++++++++++----- cmd/helm/version_test.go | 8 ++++++++ 4 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 cmd/helm/testdata/output/version-client.txt create mode 100644 cmd/helm/testdata/output/version-short-client.txt diff --git a/cmd/helm/testdata/output/version-client.txt b/cmd/helm/testdata/output/version-client.txt new file mode 100644 index 000000000..2cbbcb786 --- /dev/null +++ b/cmd/helm/testdata/output/version-client.txt @@ -0,0 +1 @@ +Client: version.BuildInfo{Version:"v3.0+unreleased", GitCommit:"", GitTreeState:"", GoVersion:""} diff --git a/cmd/helm/testdata/output/version-short-client.txt b/cmd/helm/testdata/output/version-short-client.txt new file mode 100644 index 000000000..17afc8ce9 --- /dev/null +++ b/cmd/helm/testdata/output/version-short-client.txt @@ -0,0 +1 @@ +Client: v3.0+unreleased diff --git a/cmd/helm/version.go b/cmd/helm/version.go index 888dc6094..ca78ebc5e 100644 --- a/cmd/helm/version.go +++ b/cmd/helm/version.go @@ -43,6 +43,7 @@ version.BuildInfo{Version:"v2.0.0", GitCommit:"ff52399e51bb880526e9cd0ed8386f643 type versionOptions struct { short bool + client bool template string } @@ -60,6 +61,7 @@ func newVersionCmd(out io.Writer) *cobra.Command { } f := cmd.Flags() f.BoolVar(&o.short, "short", false, "print the version number") + f.BoolVarP(&o.client, "client", "c", false, "print the version number") f.StringVar(&o.template, "template", "", "template for version string format") return cmd @@ -73,17 +75,21 @@ func (o *versionOptions) run(out io.Writer) error { } return tt.Execute(out, version.Get()) } - fmt.Fprintln(out, formatVersion(o.short)) + fmt.Fprintln(out, formatVersion(o.short, o.client)) return nil } -func formatVersion(short bool) string { +func formatVersion(short bool, client bool) string { v := version.Get() + pre := "" + if client { + pre = "Client: " + } if short { if len(v.GitCommit) >= 7 { - return fmt.Sprintf("%s+g%s", v.Version, v.GitCommit[:7]) + return fmt.Sprintf("%s%s+g%s", pre, v.Version, v.GitCommit[:7]) } - return version.GetVersion() + return fmt.Sprintf("%s%s", pre, version.GetVersion()) } - return fmt.Sprintf("%#v", v) + return fmt.Sprintf("%s%#v", pre, v) } diff --git a/cmd/helm/version_test.go b/cmd/helm/version_test.go index 89b89093e..c5cd48bf4 100644 --- a/cmd/helm/version_test.go +++ b/cmd/helm/version_test.go @@ -32,6 +32,14 @@ func TestVersion(t *testing.T) { name: "template", cmd: "version --template='Version: {{.Version}}'", golden: "output/version-template.txt", + }, { + name: "short with client", + cmd: "version --short -c", + golden: "output/version-short-client.txt", + }, { + name: "client", + cmd: "version -c", + golden: "output/version-client.txt", }} runTestCmd(t, tests) }