From 4be2c38bab8877d69d5f8f4a5f0370b6672fe0e6 Mon Sep 17 00:00:00 2001 From: Dave Henderson Date: Mon, 10 Aug 2020 10:48:01 -0400 Subject: Add experimental mode Signed-off-by: Dave Henderson --- funcs.go | 59 ++++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 38 insertions(+), 21 deletions(-) (limited to 'funcs.go') 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 + } +} -- cgit v1.2.3