From f6f4e30fb5392ea8cb90508ebda9dd367e5f22ca Mon Sep 17 00:00:00 2001 From: andig Date: Sat, 27 Jan 2024 18:18:13 +0100 Subject: [PATCH] chore: simplify render mode --- cmd/configure/devicetest.go | 2 +- cmd/configure/helper.go | 4 ++-- util/templates/documentation.go | 4 ++-- util/templates/render_instance.go | 2 +- util/templates/render_testing.go | 6 +++--- util/templates/template.go | 4 ++-- util/templates/template_modbus.go | 6 +++--- util/templates/types.go | 12 +++++++----- 8 files changed, 21 insertions(+), 19 deletions(-) diff --git a/cmd/configure/devicetest.go b/cmd/configure/devicetest.go index d065725e7..5d800dd12 100644 --- a/cmd/configure/devicetest.go +++ b/cmd/configure/devicetest.go @@ -52,7 +52,7 @@ func (d *DeviceTest) Test() (DeviceTestResult, error) { // configure creates a configured device from a template so we can test it func (d *DeviceTest) configure() (interface{}, error) { - b, _, err := d.Template.RenderResult(templates.TemplateRenderModeInstance, d.ConfigValues) + b, _, err := d.Template.RenderResult(templates.RenderModeInstance, d.ConfigValues) if err != nil { return nil, err } diff --git a/cmd/configure/helper.go b/cmd/configure/helper.go index a269b412e..47a5de13c 100644 --- a/cmd/configure/helper.go +++ b/cmd/configure/helper.go @@ -97,7 +97,7 @@ func (c *CmdConfigure) processDeviceValues(values map[string]interface{}, templa } } - b, _, err := templateItem.RenderResult(templates.TemplateRenderModeInstance, values) + b, _, err := templateItem.RenderResult(templates.RenderModeInstance, values) if err != nil { c.addedDeviceIndex-- return device, err @@ -523,5 +523,5 @@ func (c *CmdConfigure) processModbusConfig(templateItem *templates.Template) { templateItem.ModbusParams(choiceTypes[index], values) // update the modbus default values - templateItem.ModbusValues(templates.TemplateRenderModeInstance, values) + templateItem.ModbusValues(templates.RenderModeInstance, values) } diff --git a/util/templates/documentation.go b/util/templates/documentation.go index 3419f790e..d7b881dbb 100644 --- a/util/templates/documentation.go +++ b/util/templates/documentation.go @@ -18,7 +18,7 @@ var documentationModbusTmpl string // RenderDocumentation renders the documentation template func (t *Template) RenderDocumentation(product Product, lang string) ([]byte, error) { - values := t.Defaults(TemplateRenderModeDocs) + values := t.Defaults(RenderModeDocs) for index, p := range t.Params { for k, v := range values { @@ -51,7 +51,7 @@ func (t *Template) RenderDocumentation(product Product, lang string) ([]byte, er } modbusData := make(map[string]interface{}) - t.ModbusValues(TemplateRenderModeDocs, modbusData) + t.ModbusValues(RenderModeDocs, modbusData) out := new(bytes.Buffer) if err := modbusTmpl.Execute(out, modbusData); err != nil { diff --git a/util/templates/render_instance.go b/util/templates/render_instance.go index fbd230285..3c6577f5c 100644 --- a/util/templates/render_instance.go +++ b/util/templates/render_instance.go @@ -30,7 +30,7 @@ func RenderInstance(class Class, other map[string]interface{}) (*Instance, error return nil, err } - b, _, err := tmpl.RenderResult(TemplateRenderModeInstance, other) + b, _, err := tmpl.RenderResult(RenderModeInstance, other) if err != nil { return nil, util.NewConfigError(err) } diff --git a/util/templates/render_testing.go b/util/templates/render_testing.go index 8ade9e63e..a37db319d 100644 --- a/util/templates/render_testing.go +++ b/util/templates/render_testing.go @@ -13,7 +13,7 @@ import ( func test(t *testing.T, tmpl Template, values map[string]interface{}, cb func(values map[string]interface{})) { t.Helper() - b, _, err := tmpl.RenderResult(TemplateRenderModeInstance, values) + b, _, err := tmpl.RenderResult(RenderModeInstance, values) if err != nil { t.Log(string(b)) t.Error(err) @@ -40,7 +40,7 @@ func TestClass(t *testing.T, class Class, instantiate func(t *testing.T, values tmpl := tmpl // set default values for all params - values := tmpl.Defaults(TemplateRenderModeUnitTest) + values := tmpl.Defaults(RenderModeUnitTest) // set modbus default test values if values[ParamModbus] != nil { @@ -51,7 +51,7 @@ func TestClass(t *testing.T, class Class, instantiate func(t *testing.T, values } else { values[ModbusKeyRS485TCPIP] = true } - tmpl.ModbusValues(TemplateRenderModeUnitTest, values) + tmpl.ModbusValues(RenderModeUnitTest, values) } // set the template value which is needed for rendering diff --git a/util/templates/template.go b/util/templates/template.go index bd1541959..a589d95f9 100644 --- a/util/templates/template.go +++ b/util/templates/template.go @@ -156,7 +156,7 @@ func (t *Template) GroupTitle(lang string) string { } // Defaults returns a map of default values for the template -func (t *Template) Defaults(renderMode string) map[string]interface{} { +func (t *Template) Defaults(renderMode int) map[string]interface{} { values := make(map[string]interface{}) for _, p := range t.Params { values[p.Name] = p.DefaultValue(renderMode) @@ -268,7 +268,7 @@ func (t *Template) RenderProxyWithValues(values map[string]interface{}, lang str } // RenderResult renders the result template to instantiate the proxy -func (t *Template) RenderResult(renderMode string, other map[string]interface{}) ([]byte, map[string]interface{}, error) { +func (t *Template) RenderResult(renderMode int, other map[string]interface{}) ([]byte, map[string]interface{}, error) { values := t.Defaults(renderMode) if err := util.DecodeOther(other, &values); err != nil { return nil, values, err diff --git a/util/templates/template_modbus.go b/util/templates/template_modbus.go index e505ced82..a1974ffdd 100644 --- a/util/templates/template_modbus.go +++ b/util/templates/template_modbus.go @@ -35,7 +35,7 @@ func (t *Template) ModbusParams(modbusType string, values map[string]interface{} } // ModbusValues adds the values required for modbus.tpl to the value map -func (t *Template) ModbusValues(renderMode string, values map[string]interface{}) { +func (t *Template) ModbusValues(renderMode int, values map[string]interface{}) { choices := t.ModbusChoices() if len(choices) == 0 { return @@ -95,7 +95,7 @@ func (t *Template) ModbusValues(renderMode string, values map[string]interface{} // for modbus params the default value is carried // using the parameter default, not the value // TODO figure out why that's necessary - if renderMode == TemplateRenderModeInstance { + if renderMode == RenderModeInstance { t.SetParamDefault(p.Name, defaultValue) } else { values[p.Name] = defaultValue @@ -103,7 +103,7 @@ func (t *Template) ModbusValues(renderMode string, values map[string]interface{} } } - if renderMode == TemplateRenderModeDocs { + if renderMode == RenderModeDocs { values[iface] = true } } diff --git a/util/templates/types.go b/util/templates/types.go index 1a80da59e..83405c19f 100644 --- a/util/templates/types.go +++ b/util/templates/types.go @@ -39,10 +39,12 @@ const ( ModbusParamNameHost = "host" ModbusParamNamePort = "port" ModbusParamNameRTU = "rtu" +) - TemplateRenderModeDocs = "docs" - TemplateRenderModeUnitTest = "unittest" - TemplateRenderModeInstance = "instance" +const ( + RenderModeDocs int = iota + RenderModeUnitTest + RenderModeInstance ) var ValidModbusChoices = []string{ModbusChoiceRS485, ModbusChoiceTCPIP} @@ -193,13 +195,13 @@ type Param struct { } // DefaultValue returns a default or example value depending on the renderMode -func (p *Param) DefaultValue(renderMode string) interface{} { +func (p *Param) DefaultValue(renderMode int) interface{} { // return empty list to allow iterating over in template if p.Type == TypeStringList { return []string{} } - if (renderMode == TemplateRenderModeDocs || renderMode == TemplateRenderModeUnitTest) && p.Default == "" { + if (renderMode == RenderModeDocs || renderMode == RenderModeUnitTest) && p.Default == "" { return p.Example }