forked from argoproj/argo-workflows
-
Notifications
You must be signed in to change notification settings - Fork 0
/
env.go
35 lines (28 loc) · 695 Bytes
/
env.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package env
import (
"encoding/json"
sprig "github.com/Masterminds/sprig/v3"
exprpkg "github.com/argoproj/pkg/expr"
"github.com/svnshing/argo-workflows/v3/util/expand"
)
var sprigFuncMap = sprig.GenericFuncMap() // a singleton for better performance
func init() {
delete(sprigFuncMap, "env")
delete(sprigFuncMap, "expandenv")
}
func GetFuncMap(m map[string]interface{}) map[string]interface{} {
env := expand.Expand(m)
for k, v := range exprpkg.GetExprEnvFunctionMap() {
env[k] = v
}
env["toJson"] = toJson
env["sprig"] = sprigFuncMap
return env
}
func toJson(v interface{}) string {
output, err := json.Marshal(v)
if err != nil {
panic(err)
}
return string(output)
}