From 51dd8313bcbc03db3f266dc6217d6fce70fe39d3 Mon Sep 17 00:00:00 2001 From: Anshul Verma Date: Tue, 10 Mar 2020 03:35:59 +0530 Subject: [PATCH] Solve the issue #7749 where proper formating was not being done if --short(-q) option was used with other formating options like json, yaml Signed-off-by: Anshul Verma --- cmd/helm/list.go | 21 ++++++++++++++++++++ cmd/helm/list_test.go | 10 ++++++++++ cmd/helm/testdata/output/list-short-json.txt | 0 cmd/helm/testdata/output/list-short-yaml.txt | 0 4 files changed, 31 insertions(+) create mode 100644 cmd/helm/testdata/output/list-short-json.txt create mode 100644 cmd/helm/testdata/output/list-short-yaml.txt diff --git a/cmd/helm/list.go b/cmd/helm/list.go index 4b652088d..59364381e 100644 --- a/cmd/helm/list.go +++ b/cmd/helm/list.go @@ -83,6 +83,27 @@ func newListCmd(cfg *action.Configuration, out io.Writer) *cobra.Command { } if client.Short { + + names := make([]string, 0) + for _, res := range results { + //fmt.Fprintln(out, res.Name) + names = append(names, res.Name) + } + + outputFlag := cmd.Flag("output") + if outputFlag.Changed { + switch outputFlag.Value.String() { + case "json": + output.EncodeJSON(out, names) + return nil + case "yaml": + output.EncodeYAML(out, names) + return nil + default: + return outfmt.Write(out, newReleaseListWriter(results)) + } + } + for _, res := range results { fmt.Fprintln(out, res.Name) } diff --git a/cmd/helm/list_test.go b/cmd/helm/list_test.go index fe773a803..dadb57b94 100644 --- a/cmd/helm/list_test.go +++ b/cmd/helm/list_test.go @@ -198,6 +198,16 @@ func TestListCmd(t *testing.T) { cmd: "list --short", golden: "output/list-short.txt", rels: releaseFixture, + }, { + name: "list releases in short output format", + cmd: "list --short --output yaml", + golden: "output/list-short-yaml.txt", + rels: releaseFixture, + }, { + name: "list releases in short output format", + cmd: "list --short --output json", + golden: "output/list-short-json.txt", + rels: releaseFixture, }, { name: "list superseded releases", cmd: "list --superseded", diff --git a/cmd/helm/testdata/output/list-short-json.txt b/cmd/helm/testdata/output/list-short-json.txt new file mode 100644 index 000000000..e69de29bb diff --git a/cmd/helm/testdata/output/list-short-yaml.txt b/cmd/helm/testdata/output/list-short-yaml.txt new file mode 100644 index 000000000..e69de29bb