summaryrefslogtreecommitdiffstats
path: root/pkg/utils/template.go
blob: 41388ae3a2ec4e5ea71b6ee5395b28bd1b49b193 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package utils

import (
	"bytes"
	"strings"
	"text/template"
)

func ResolveTemplate(templateStr string, object interface{}) (string, error) {
	tmpl, err := template.New("template").Option("missingkey=error").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
}