cmd/tpl_funcs.go

53 lines
931 B
Go
Raw Normal View History

package cmd
import (
"fmt"
"strings"
"text/template"
)
var tplFuncs = template.FuncMap{
2023-11-13 00:44:09 -05:00
"map": tplMap,
"cat": tplCat,
2023-11-13 00:44:09 -05:00
"join": tplJoin,
"under": tplUnder,
"varPrefix": tplVarPrefix,
"inc": tplInc,
}
func tplMap(vals ...any) (map[string]any, error) {
if len(vals)%2 != 0 {
return nil, fmt.Errorf("missing value, need one key and one value per kv pair")
}
m := make(map[string]any)
for i := 0; i < len(vals); i += 2 {
m[vals[i].(string)] = vals[i+1]
}
return m, nil
}
func tplCat(strs ...string) string {
return strings.Join(strs, "")
}
2023-11-13 00:44:09 -05:00
func tplJoin(strs []string, sep string) string {
return strings.Join(strs, sep)
}
2023-11-13 00:44:09 -05:00
func tplUnder(s string) string {
return strings.ToLower(strings.ReplaceAll(strings.ReplaceAll(s, " ", "_"), "-", "_"))
}
func tplVarPrefix(s string) string {
if s == "" {
return ""
}
return tplUnder(s) + "_"
}
func tplInc(i int) int {
return i + 1
}