package main import ( "encoding/json" "strings" "text/template" "github.com/Masterminds/sprig" ) var ProtoHelpersFuncMap = template.FuncMap{ "string": func(i interface { String() string }) string { return i.String() }, "json": func(v interface{}) string { a, _ := json.Marshal(v) return string(a) }, "prettyjson": func(v interface{}) string { a, _ := json.MarshalIndent(v, "", " ") return string(a) }, "splitArray": func(sep string, s string) []string { return strings.Split(s, sep) }, "first": func(a []string) string { return a[0] }, "last": func(a []string) string { return a[len(a)-1] }, "upperFirst": func(s string) string { return strings.ToUpper(s[:1]) + s[1:] }, "lowerFirst": func(s string) string { return strings.ToLower(s[:1]) + s[1:] }, } func init() { for k, v := range sprig.TxtFuncMap() { ProtoHelpersFuncMap[k] = v } }