From 34efbbd5705a899b4480f76fe3df488e2a4896f9 Mon Sep 17 00:00:00 2001 From: Alex Quick Date: Sat, 27 Oct 2018 15:35:40 -0400 Subject: [PATCH] [config] sort config:show by key name resolves: #3293 --- plugins/config/environment.go | 14 +++++++++++--- plugins/config/environment_test.go | 1 + tests/unit/20_config.bats | 13 +++++++++++++ 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/plugins/config/environment.go b/plugins/config/environment.go index 9a9e9e77a35..eaabf08d2b8 100644 --- a/plugins/config/environment.go +++ b/plugins/config/environment.go @@ -240,9 +240,17 @@ func prettyPrintEnvEntries(prefix string, entries map[string]string) string { colConfig := columnize.DefaultConfig() colConfig.Prefix = prefix colConfig.Delim = "\x00" - lines := make([]string, 0, len(entries)) - for k, v := range entries { - lines = append(lines, fmt.Sprintf("%s:\x00%s", k, v)) + + //some keys may be prefixes of each other so we need to sort them rather than the resulting lines + keys := make([]string, 0, len(entries)) + for k := range entries { + keys = append(keys, k) + } + sort.Strings(keys) + + lines := make([]string, 0, len(keys)) + for _, k := range keys { + lines = append(lines, fmt.Sprintf("%s:\x00%s", k, entries[k])) } return columnize.Format(lines, colConfig) } diff --git a/plugins/config/environment_test.go b/plugins/config/environment_test.go index c7bef686ff1..8f87a4a3b36 100644 --- a/plugins/config/environment_test.go +++ b/plugins/config/environment_test.go @@ -56,6 +56,7 @@ func TestExport(t *testing.T) { Expect(e.Export(ExportFormatDockerArgs)).To(Equal("--env=BAR='BAZ' --env=BAZ='a\nb' --env=FOO='b'\\''ar '")) Expect(e.Export(ExportFormatShell)).To(Equal("BAR='BAZ' BAZ='a\nb' FOO='b'\\''ar '")) Expect(e.Export(ExportFormatExports)).To(Equal("export BAR='BAZ'\nexport BAZ='a\nb'\nexport FOO='b'\\''ar '")) + Expect(e.Export(ExportFormatPretty)).To(Equal("BAR: BAZ\nBAZ: a\nb\nFOO: b'ar")) } func TestGet(t *testing.T) { diff --git a/tests/unit/20_config.bats b/tests/unit/20_config.bats index a5894372c0c..327abccaaab 100644 --- a/tests/unit/20_config.bats +++ b/tests/unit/20_config.bats @@ -145,3 +145,16 @@ teardown() { echo "status: "$status assert_success } + +@test "(config) config:show" { + run bash -c "dokku --app $TEST_APP config:set zKey=true bKey=true BKEY=true aKey=true" + echo "output: "$output + echo "status: "$status + assert_success + + run bash -c "dokku --app $TEST_APP config:show" + echo "output: "$output + echo "status: "$stat + + assert_output "=====> $TEST_APP env vars"$'\nBKEY: true\naKey: true\nbKey: true\nzKey: true' +}