summaryrefslogtreecommitdiff
path: root/internal/funcs/env.go
diff options
context:
space:
mode:
authorDave Henderson <dhenderson@gmail.com>2024-01-25 20:11:31 -0500
committerGitHub <noreply@github.com>2024-01-25 20:11:31 -0500
commitebb97fb7367fb983cffc1935a8fb57e4b80f5249 (patch)
tree43ef6cd01f629f60f59efe1e5b003f7c8e3a1257 /internal/funcs/env.go
parentf1d9158ea99abbe556251c1ff2fe970f3b460ee9 (diff)
Move funcs package to internal (#1977)
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'internal/funcs/env.go')
-rw-r--r--internal/funcs/env.go49
1 files changed, 49 insertions, 0 deletions
diff --git a/internal/funcs/env.go b/internal/funcs/env.go
new file mode 100644
index 00000000..0df63b3e
--- /dev/null
+++ b/internal/funcs/env.go
@@ -0,0 +1,49 @@
+package funcs
+
+import (
+ "context"
+
+ "github.com/hairyhenderson/gomplate/v4/conv"
+ "github.com/hairyhenderson/gomplate/v4/env"
+)
+
+// EnvNS - the Env namespace
+//
+// Deprecated: don't use
+func EnvNS() *EnvFuncs {
+ return &EnvFuncs{}
+}
+
+// AddEnvFuncs -
+//
+// Deprecated: use [CreateEnvFuncs] instead
+func AddEnvFuncs(f map[string]interface{}) {
+ for k, v := range CreateEnvFuncs(context.Background()) {
+ f[k] = v
+ }
+}
+
+// CreateEnvFuncs -
+func CreateEnvFuncs(ctx context.Context) map[string]interface{} {
+ ns := &EnvFuncs{ctx}
+
+ return map[string]interface{}{
+ "env": func() interface{} { return ns },
+ "getenv": ns.Getenv,
+ }
+}
+
+// EnvFuncs -
+type EnvFuncs struct {
+ ctx context.Context
+}
+
+// Getenv -
+func (EnvFuncs) Getenv(key interface{}, def ...string) string {
+ return env.Getenv(conv.ToString(key), def...)
+}
+
+// ExpandEnv -
+func (EnvFuncs) ExpandEnv(s interface{}) string {
+ return env.ExpandEnv(conv.ToString(s))
+}