diff options
Diffstat (limited to 'pkg/utils/template.go')
-rw-r--r-- | pkg/utils/template.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/pkg/utils/template.go b/pkg/utils/template.go new file mode 100644 index 000000000..6c147cd38 --- /dev/null +++ b/pkg/utils/template.go @@ -0,0 +1,30 @@ +package utils + +import ( + "bytes" + "strings" + "text/template" +) + +func ResolveTemplate(templateStr string, object interface{}) (string, error) { + tmpl, err := template.New("template").Parse(templateStr) + if err != nil { + return "", err + } + + var buf bytes.Buffer + if err := tmpl.Execute(&buf, object); err != nil { + return "", err + } + + return buf.String(), nil +} + +// ResolvePlaceholderString populates a template with values +func ResolvePlaceholderString(str string, arguments map[string]string) string { + for key, value := range arguments { + str = strings.Replace(str, "{{"+key+"}}", value, -1) + str = strings.Replace(str, "{{."+key+"}}", value, -1) + } + return str +} |