summaryrefslogtreecommitdiff
path: root/funcs.go
diff options
context:
space:
mode:
authorDave Henderson <dhenderson@gmail.com>2020-08-10 10:48:01 -0400
committerDave Henderson <dhenderson@gmail.com>2020-08-23 19:31:31 -0400
commit4be2c38bab8877d69d5f8f4a5f0370b6672fe0e6 (patch)
tree3f9edd6bddeaaba5717f490231bd35eebdf58891 /funcs.go
parent406832735e6c2d4f1598502405058f543b1ca16e (diff)
Add experimental mode
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'funcs.go')
-rw-r--r--funcs.go59
1 files changed, 38 insertions, 21 deletions
diff --git a/funcs.go b/funcs.go
index 2c7e70f1..97c1cc18 100644
--- a/funcs.go
+++ b/funcs.go
@@ -1,34 +1,51 @@
package gomplate
import (
+ "context"
"text/template"
"github.com/hairyhenderson/gomplate/v3/data"
"github.com/hairyhenderson/gomplate/v3/funcs"
+ "github.com/hairyhenderson/gomplate/v3/internal/config"
)
-// Funcs - The function mappings are defined here!
+// Funcs -
+// Deprecated: use CreateFuncs instead
func Funcs(d *data.Data) template.FuncMap {
+ ctx := context.Background()
+ cfg := config.FromContext(ctx)
+ return CreateFuncs(config.ContextWithConfig(ctx, cfg), d)
+}
+
+// CreateFuncs - function mappings are created here
+func CreateFuncs(ctx context.Context, d *data.Data) template.FuncMap {
f := template.FuncMap{}
- funcs.AddDataFuncs(f, d)
- funcs.AWSFuncs(f)
- funcs.AddGCPFuncs(f)
- funcs.AddBase64Funcs(f)
- funcs.AddNetFuncs(f)
- funcs.AddReFuncs(f)
- funcs.AddStringFuncs(f)
- funcs.AddEnvFuncs(f)
- funcs.AddConvFuncs(f)
- funcs.AddTimeFuncs(f)
- funcs.AddMathFuncs(f)
- funcs.AddCryptoFuncs(f)
- funcs.AddFileFuncs(f)
- funcs.AddFilePathFuncs(f)
- funcs.AddPathFuncs(f)
- funcs.AddSockaddrFuncs(f)
- funcs.AddTestFuncs(f)
- funcs.AddCollFuncs(f)
- funcs.AddUUIDFuncs(f)
- funcs.AddRandomFuncs(f)
+ addToMap(f, funcs.CreateDataFuncs(ctx, d))
+ addToMap(f, funcs.CreateAWSFuncs(ctx))
+ addToMap(f, funcs.CreateGCPFuncs(ctx))
+ addToMap(f, funcs.CreateBase64Funcs(ctx))
+ addToMap(f, funcs.CreateNetFuncs(ctx))
+ addToMap(f, funcs.CreateReFuncs(ctx))
+ addToMap(f, funcs.CreateStringFuncs(ctx))
+ addToMap(f, funcs.CreateEnvFuncs(ctx))
+ addToMap(f, funcs.CreateConvFuncs(ctx))
+ addToMap(f, funcs.CreateTimeFuncs(ctx))
+ addToMap(f, funcs.CreateMathFuncs(ctx))
+ addToMap(f, funcs.CreateCryptoFuncs(ctx))
+ addToMap(f, funcs.CreateFileFuncs(ctx))
+ addToMap(f, funcs.CreateFilePathFuncs(ctx))
+ addToMap(f, funcs.CreatePathFuncs(ctx))
+ addToMap(f, funcs.CreateSockaddrFuncs(ctx))
+ addToMap(f, funcs.CreateTestFuncs(ctx))
+ addToMap(f, funcs.CreateCollFuncs(ctx))
+ addToMap(f, funcs.CreateUUIDFuncs(ctx))
+ addToMap(f, funcs.CreateRandomFuncs(ctx))
return f
}
+
+// addToMap - add src's entries to dst
+func addToMap(dst, src map[string]interface{}) {
+ for k, v := range src {
+ dst[k] = v
+ }
+}