From 8ade41399efbc22e5dde1a9b284fc8a21cec4591 Mon Sep 17 00:00:00 2001 From: Khosrow Moossavi Date: Sun, 28 Feb 2021 20:37:12 -0500 Subject: [PATCH] Remove irrelevant sort information from Settings Signed-off-by: Khosrow Moossavi --- internal/cli/config.go | 9 +++---- internal/format/asciidoc_document_test.go | 13 +++------- internal/format/asciidoc_table_test.go | 13 +++------- internal/format/json_test.go | 13 +++------- internal/format/markdown_document_test.go | 13 +++------- internal/format/markdown_table_test.go | 13 +++------- internal/format/pretty_test.go | 13 +++------- internal/format/tfvars_hcl_test.go | 13 +++------- internal/format/tfvars_json_test.go | 13 +++------- internal/format/toml_test.go | 13 +++------- internal/format/xml_test.go | 13 +++------- internal/format/yaml_test.go | 13 +++------- internal/print/settings.go | 24 ------------------ internal/terraform/module.go | 31 ++++++++++++----------- internal/terraform/module_test.go | 4 +-- scripts/docs/generate.go | 4 +-- 16 files changed, 56 insertions(+), 159 deletions(-) diff --git a/internal/cli/config.go b/internal/cli/config.go index 875cd48..fde73c0 100644 --- a/internal/cli/config.go +++ b/internal/cli/config.go @@ -280,12 +280,9 @@ func (c *Config) extract() (*print.Settings, *terraform.Options) { options.OutputValuesPath = c.OutputValues.From // sort - settings.SortByName = c.Sort.Enabled - settings.SortByRequired = c.Sort.Enabled && c.Sort.By.Required - settings.SortByType = c.Sort.Enabled && c.Sort.By.Type - options.SortBy.Name = settings.SortByName - options.SortBy.Required = settings.SortByRequired - options.SortBy.Type = settings.SortByType + options.SortBy.Name = c.Sort.Enabled + options.SortBy.Required = c.Sort.Enabled && c.Sort.By.Required + options.SortBy.Type = c.Sort.Enabled && c.Sort.By.Type // settings settings.EscapeCharacters = c.Settings.Escape diff --git a/internal/format/asciidoc_document_test.go b/internal/format/asciidoc_document_test.go index cb0180f..176f153 100644 --- a/internal/format/asciidoc_document_test.go +++ b/internal/format/asciidoc_document_test.go @@ -60,9 +60,7 @@ func TestAsciidocDocumentWithRequired(t *testing.T) { func TestAsciidocDocumentSortByName(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByName: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("asciidoc", "document-SortByName") assert.Nil(err) @@ -86,10 +84,7 @@ func TestAsciidocDocumentSortByName(t *testing.T) { func TestAsciidocDocumentSortByRequired(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByName: true, - SortByRequired: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("asciidoc", "document-SortByRequired") assert.Nil(err) @@ -114,9 +109,7 @@ func TestAsciidocDocumentSortByRequired(t *testing.T) { func TestAsciidocDocumentSortByType(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByType: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("asciidoc", "document-SortByType") assert.Nil(err) diff --git a/internal/format/asciidoc_table_test.go b/internal/format/asciidoc_table_test.go index 7a6ec64..35a5821 100644 --- a/internal/format/asciidoc_table_test.go +++ b/internal/format/asciidoc_table_test.go @@ -60,9 +60,7 @@ func TestAsciidocTableWithRequired(t *testing.T) { func TestAsciidocTableSortByName(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByName: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("asciidoc", "table-SortByName") assert.Nil(err) @@ -86,10 +84,7 @@ func TestAsciidocTableSortByName(t *testing.T) { func TestAsciidocTableSortByRequired(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByName: true, - SortByRequired: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("asciidoc", "table-SortByRequired") assert.Nil(err) @@ -114,9 +109,7 @@ func TestAsciidocTableSortByRequired(t *testing.T) { func TestAsciidocTableSortByType(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByType: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("asciidoc", "table-SortByType") assert.Nil(err) diff --git a/internal/format/json_test.go b/internal/format/json_test.go index a95d72d..0960d09 100644 --- a/internal/format/json_test.go +++ b/internal/format/json_test.go @@ -40,9 +40,7 @@ func TestJson(t *testing.T) { func TestJsonSortByName(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByName: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("json", "json-SortByName") assert.Nil(err) @@ -66,10 +64,7 @@ func TestJsonSortByName(t *testing.T) { func TestJsonSortByRequired(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByName: true, - SortByRequired: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("json", "json-SortByRequired") assert.Nil(err) @@ -94,9 +89,7 @@ func TestJsonSortByRequired(t *testing.T) { func TestJsonSortByType(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByType: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("json", "json-SortByType") assert.Nil(err) diff --git a/internal/format/markdown_document_test.go b/internal/format/markdown_document_test.go index 9eafb23..f8e00d5 100644 --- a/internal/format/markdown_document_test.go +++ b/internal/format/markdown_document_test.go @@ -60,9 +60,7 @@ func TestDocumentWithRequired(t *testing.T) { func TestDocumentSortByName(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByName: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("markdown", "document-SortByName") assert.Nil(err) @@ -86,10 +84,7 @@ func TestDocumentSortByName(t *testing.T) { func TestDocumentSortByRequired(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByName: true, - SortByRequired: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("markdown", "document-SortByRequired") assert.Nil(err) @@ -114,9 +109,7 @@ func TestDocumentSortByRequired(t *testing.T) { func TestDocumentSortByType(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByType: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("markdown", "document-SortByType") assert.Nil(err) diff --git a/internal/format/markdown_table_test.go b/internal/format/markdown_table_test.go index bfb5bb7..aa127b7 100644 --- a/internal/format/markdown_table_test.go +++ b/internal/format/markdown_table_test.go @@ -60,9 +60,7 @@ func TestTableWithRequired(t *testing.T) { func TestTableSortByName(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByName: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("markdown", "table-SortByName") assert.Nil(err) @@ -86,10 +84,7 @@ func TestTableSortByName(t *testing.T) { func TestTableSortByRequired(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByName: true, - SortByRequired: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("markdown", "table-SortByRequired") assert.Nil(err) @@ -114,9 +109,7 @@ func TestTableSortByRequired(t *testing.T) { func TestTableSortByType(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByType: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("markdown", "table-SortByType") assert.Nil(err) diff --git a/internal/format/pretty_test.go b/internal/format/pretty_test.go index 08c812f..8837072 100644 --- a/internal/format/pretty_test.go +++ b/internal/format/pretty_test.go @@ -40,9 +40,7 @@ func TestPretty(t *testing.T) { func TestPrettySortByName(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().WithColor().With(&print.Settings{ - SortByName: true, - }).Build() + settings := testutil.Settings().WithSections().WithColor().Build() expected, err := testutil.GetExpected("pretty", "pretty-SortByName") assert.Nil(err) @@ -66,10 +64,7 @@ func TestPrettySortByName(t *testing.T) { func TestPrettySortByRequired(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().WithColor().With(&print.Settings{ - SortByName: true, - SortByRequired: true, - }).Build() + settings := testutil.Settings().WithSections().WithColor().Build() expected, err := testutil.GetExpected("pretty", "pretty-SortByRequired") assert.Nil(err) @@ -94,9 +89,7 @@ func TestPrettySortByRequired(t *testing.T) { func TestPrettySortByType(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().WithColor().With(&print.Settings{ - SortByType: true, - }).Build() + settings := testutil.Settings().WithSections().WithColor().Build() expected, err := testutil.GetExpected("pretty", "pretty-SortByType") assert.Nil(err) diff --git a/internal/format/tfvars_hcl_test.go b/internal/format/tfvars_hcl_test.go index f2d2628..f91d147 100644 --- a/internal/format/tfvars_hcl_test.go +++ b/internal/format/tfvars_hcl_test.go @@ -40,9 +40,7 @@ func TestTfvarsHcl(t *testing.T) { func TestTfvarsHclSortByName(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByName: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("tfvars", "hcl-SortByName") assert.Nil(err) @@ -66,10 +64,7 @@ func TestTfvarsHclSortByName(t *testing.T) { func TestTfvarsHclSortByRequired(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByName: true, - SortByRequired: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("tfvars", "hcl-SortByRequired") assert.Nil(err) @@ -94,9 +89,7 @@ func TestTfvarsHclSortByRequired(t *testing.T) { func TestTfvarsHclSortByType(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByType: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("tfvars", "hcl-SortByType") assert.Nil(err) diff --git a/internal/format/tfvars_json_test.go b/internal/format/tfvars_json_test.go index 140afb2..886ba3b 100644 --- a/internal/format/tfvars_json_test.go +++ b/internal/format/tfvars_json_test.go @@ -40,9 +40,7 @@ func TestTfvarsJson(t *testing.T) { func TestTfvarsJsonSortByName(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByName: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("tfvars", "json-SortByName") assert.Nil(err) @@ -66,10 +64,7 @@ func TestTfvarsJsonSortByName(t *testing.T) { func TestTfvarsJsonSortByRequired(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByName: true, - SortByRequired: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("tfvars", "json-SortByRequired") assert.Nil(err) @@ -94,9 +89,7 @@ func TestTfvarsJsonSortByRequired(t *testing.T) { func TestTfvarsJsonSortByType(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByType: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("tfvars", "json-SortByType") assert.Nil(err) diff --git a/internal/format/toml_test.go b/internal/format/toml_test.go index 9ac35dc..6b20763 100644 --- a/internal/format/toml_test.go +++ b/internal/format/toml_test.go @@ -40,9 +40,7 @@ func TestToml(t *testing.T) { func TestTomlSortByName(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByName: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("toml", "toml-SortByName") assert.Nil(err) @@ -66,10 +64,7 @@ func TestTomlSortByName(t *testing.T) { func TestTomlSortByRequired(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByName: true, - SortByRequired: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("toml", "toml-SortByRequired") assert.Nil(err) @@ -94,9 +89,7 @@ func TestTomlSortByRequired(t *testing.T) { func TestTomlSortByType(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByType: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("toml", "toml-SortByType") assert.Nil(err) diff --git a/internal/format/xml_test.go b/internal/format/xml_test.go index bce4ed2..e90bc34 100644 --- a/internal/format/xml_test.go +++ b/internal/format/xml_test.go @@ -40,9 +40,7 @@ func TestXml(t *testing.T) { func TestXmlSortByName(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByName: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("xml", "xml-SortByName") assert.Nil(err) @@ -66,10 +64,7 @@ func TestXmlSortByName(t *testing.T) { func TestXmlSortByRequired(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByName: true, - SortByRequired: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("xml", "xml-SortByRequired") assert.Nil(err) @@ -94,9 +89,7 @@ func TestXmlSortByRequired(t *testing.T) { func TestXmlSortByType(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByType: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("xml", "xml-SortByType") assert.Nil(err) diff --git a/internal/format/yaml_test.go b/internal/format/yaml_test.go index dd09e78..fc8a12c 100644 --- a/internal/format/yaml_test.go +++ b/internal/format/yaml_test.go @@ -40,9 +40,7 @@ func TestYaml(t *testing.T) { func TestYamlSortByName(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByName: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("yaml", "yaml-SortByName") assert.Nil(err) @@ -66,10 +64,7 @@ func TestYamlSortByName(t *testing.T) { func TestYamlSortByRequired(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByName: true, - SortByRequired: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("yaml", "yaml-SortByRequired") assert.Nil(err) @@ -94,9 +89,7 @@ func TestYamlSortByRequired(t *testing.T) { func TestYamlSortByType(t *testing.T) { assert := assert.New(t) - settings := testutil.Settings().WithSections().With(&print.Settings{ - SortByType: true, - }).Build() + settings := testutil.Settings().WithSections().Build() expected, err := testutil.GetExpected("yaml", "yaml-SortByType") assert.Nil(err) diff --git a/internal/print/settings.go b/internal/print/settings.go index 1511951..2475877 100644 --- a/internal/print/settings.go +++ b/internal/print/settings.go @@ -99,24 +99,6 @@ type Settings struct { // default: true // scope: Global ShowResources bool - - // SortByName sorted rendering of inputs and outputs - // - // default: true - // scope: Global - SortByName bool - - // SortByRequired sort items (inputs, providers) by name and prints required ones first - // - // default: false - // scope: Global - SortByRequired bool - - // SortByType sort items (inputs, outputs) by type alphabetically - // - // default: false - // scope: Global - SortByType bool } // DefaultSettings returns new instance of Settings @@ -136,9 +118,6 @@ func DefaultSettings() *Settings { ShowSensitivity: true, ShowRequirements: true, ShowResources: true, - SortByName: true, - SortByRequired: false, - SortByType: false, } } @@ -159,8 +138,5 @@ func (s *Settings) Convert() *printsdk.Settings { ShowSensitivity: s.ShowSensitivity, ShowRequirements: s.ShowRequirements, ShowResources: s.ShowResources, - SortByName: s.SortByName, - SortByRequired: s.SortByRequired, - SortByType: s.SortByType, } } diff --git a/internal/terraform/module.go b/internal/terraform/module.go index c8564b1..a49a0b7 100644 --- a/internal/terraform/module.go +++ b/internal/terraform/module.go @@ -460,42 +460,43 @@ func loadComments(filename string, lineNum int) string { } func sortItems(tfmodule *Module, sortby *SortBy) { + // inputs if sortby.Type { sort.Sort(inputsSortedByType(tfmodule.Inputs)) sort.Sort(inputsSortedByType(tfmodule.RequiredInputs)) sort.Sort(inputsSortedByType(tfmodule.OptionalInputs)) + } else if sortby.Required { + sort.Sort(inputsSortedByRequired(tfmodule.Inputs)) + sort.Sort(inputsSortedByRequired(tfmodule.RequiredInputs)) + sort.Sort(inputsSortedByRequired(tfmodule.OptionalInputs)) } else if sortby.Name { - if sortby.Required { - sort.Sort(inputsSortedByRequired(tfmodule.Inputs)) - sort.Sort(inputsSortedByRequired(tfmodule.RequiredInputs)) - sort.Sort(inputsSortedByRequired(tfmodule.OptionalInputs)) - } else { - sort.Sort(inputsSortedByName(tfmodule.Inputs)) - sort.Sort(inputsSortedByName(tfmodule.RequiredInputs)) - sort.Sort(inputsSortedByName(tfmodule.OptionalInputs)) - } + sort.Sort(inputsSortedByName(tfmodule.Inputs)) + sort.Sort(inputsSortedByName(tfmodule.RequiredInputs)) + sort.Sort(inputsSortedByName(tfmodule.OptionalInputs)) } else { sort.Sort(inputsSortedByPosition(tfmodule.Inputs)) sort.Sort(inputsSortedByPosition(tfmodule.RequiredInputs)) sort.Sort(inputsSortedByPosition(tfmodule.OptionalInputs)) } + // outputs if sortby.Name || sortby.Type { sort.Sort(outputsSortedByName(tfmodule.Outputs)) - sort.Sort(providersSortedByName(tfmodule.Providers)) } else { sort.Sort(outputsSortedByPosition(tfmodule.Outputs)) + } + + // providers + if sortby.Name || sortby.Type { + sort.Sort(providersSortedByName(tfmodule.Providers)) + } else { sort.Sort(providersSortedByPosition(tfmodule.Providers)) } // Always sort resources sort.Sort(resourcesSortedByType(tfmodule.Resources)) - if sortby.Name { - sort.Sort(modulecallsSortedByName(tfmodule.ModuleCalls)) - } else { - sort.Sort(modulecallsSortedBySource(tfmodule.ModuleCalls)) - } + // modules if sortby.Name { sort.Sort(modulecallsSortedByName(tfmodule.ModuleCalls)) } else { diff --git a/internal/terraform/module_test.go b/internal/terraform/module_test.go index c528e8e..35fa318 100644 --- a/internal/terraform/module_test.go +++ b/internal/terraform/module_test.go @@ -639,9 +639,9 @@ func TestSortItems(t *testing.T) { path: "full-example", sort: &SortBy{Name: false, Required: true, Type: false}, expected: expected{ - inputs: []string{"D", "B", "E", "A", "C", "F", "G"}, + inputs: []string{"A", "F", "B", "C", "D", "E", "G"}, required: []string{"A", "F"}, - optional: []string{"D", "B", "E", "C", "G"}, + optional: []string{"B", "C", "D", "E", "G"}, outputs: []string{"C", "A", "B"}, providers: []string{"tls", "aws", "null"}, }, diff --git a/scripts/docs/generate.go b/scripts/docs/generate.go index d01cf94..265e83f 100644 --- a/scripts/docs/generate.go +++ b/scripts/docs/generate.go @@ -179,8 +179,8 @@ func example(ref *reference) error { ShowHeader: true, HeaderFromFile: "main.tf", SortBy: &terraform.SortBy{ - Name: settings.SortByName, - Required: settings.SortByRequired, + Name: true, + Required: true, }, }