diff --git a/cmd/revad/pkg/config/templates.go b/cmd/revad/pkg/config/templates.go index d2803e7ad50..559dc2a024d 100644 --- a/cmd/revad/pkg/config/templates.go +++ b/cmd/revad/pkg/config/templates.go @@ -132,7 +132,8 @@ func applyTemplateString(l Lookuper, p setter, v reflect.Value) error { return err } if val == nil { - val = "" + // key was not found, just keep it but stop further parsing + break } new, err := replaceTemplate(s, tmpl, val) @@ -175,7 +176,8 @@ func applyTemplateInterface(l Lookuper, p setter, v reflect.Value) error { return err } if val == nil { - val = "" + // key was not found, just keep it but stop further parsing + break } new, err := replaceTemplate(s, tmpl, val) diff --git a/cmd/revad/pkg/config/templates_test.go b/cmd/revad/pkg/config/templates_test.go index d1a4336258b..3f6e34a087a 100644 --- a/cmd/revad/pkg/config/templates_test.go +++ b/cmd/revad/pkg/config/templates_test.go @@ -96,10 +96,11 @@ func TestApplyTemplate(t *testing.T) { Config: map[string]any{ "drivers": map[string]any{ "sql": map[string]any{ - "db_username": "{{ vars.db_username }}", - "db_password": "{{ vars.db_password }}", - "key": "value", - "port": "{{ vars.port }}", + "db_username": "{{ vars.db_username }}", + "db_password": "{{ vars.db_password }}", + "key": "value", + "port": "{{ vars.port }}", + "user_and_token": "{{ vars.db_username }} and {{.Token}}", }, }, }, @@ -125,10 +126,11 @@ func TestApplyTemplate(t *testing.T) { assert.ErrorIs(t, err, nil) assert.Equal(t, "localhost:1901", cfg2.Shared.GatewaySVC) assert.Equal(t, map[string]any{ - "db_username": "root", - "db_password": "secretpassword", - "key": "value", - "port": 1000, + "db_username": "root", + "db_password": "secretpassword", + "key": "value", + "port": 1000, + "user_and_token": "root and {{.Token}}", }, cfg2.GRPC.Services["authregistry"][0].Config["drivers"].(map[string]any)["sql"]) assert.Equal(t, map[string]any{ "db_host": "http://localhost:1000",