35 lines
674 B
Go
35 lines
674 B
Go
package storage
|
|
|
|
import (
|
|
"strings"
|
|
"text/template"
|
|
|
|
lib "git.sr.ht/~cco/go-scopes"
|
|
"git.sr.ht/~cco/go-scopes/logging/log"
|
|
)
|
|
|
|
var TemplateFunctions = map[string]any{
|
|
"toLower": strings.ToLower,
|
|
"add1": func(i int) int { return i + 1 },
|
|
}
|
|
|
|
func Template(name, src string) *template.Template {
|
|
t := template.New(name).Funcs(TemplateFunctions)
|
|
t, err := t.Parse(src)
|
|
if err != nil {
|
|
panic(err)
|
|
//logger.LogErr(err, info, fmt.Sprintf("%+v", t))
|
|
//return nil
|
|
}
|
|
return t
|
|
}
|
|
|
|
func BuildSql(t *template.Template, data lib.Map) string {
|
|
var out strings.Builder
|
|
err := t.Execute(&out, data)
|
|
if err != nil {
|
|
log.Error(err)
|
|
return ""
|
|
}
|
|
return out.String()
|
|
}
|