diff --git a/pkg/exprenv/exprenv.go b/pkg/exprenv/exprenv.go index 97fb49f..7bd574b 100644 --- a/pkg/exprenv/exprenv.go +++ b/pkg/exprenv/exprenv.go @@ -61,6 +61,7 @@ func BaseFuncs(ptyEnabled bool) map[string]any { "truncate": exprfuncs.Truncate, "substr": exprfuncs.Substr, "formatOrder": exprfuncs.FormatOrder, + "env": exprfuncs.Env, } } diff --git a/pkg/exprenv/exprfuncs/exprfuncs.go b/pkg/exprenv/exprfuncs/exprfuncs.go index eca2282..c3031a7 100644 --- a/pkg/exprenv/exprfuncs/exprfuncs.go +++ b/pkg/exprenv/exprfuncs/exprfuncs.go @@ -8,6 +8,7 @@ package exprfuncs import ( "encoding/json" "fmt" + "os" "strconv" "strings" "time" @@ -414,3 +415,15 @@ func IsBlank(v any) bool { s, ok := v.(string) return ok && s == "" } + +// Env returns the value of the named environment variable, or def (default "") +// when it is unset or empty. +func Env(name string, def ...string) string { + if v := os.Getenv(name); v != "" { + return v + } + if len(def) > 0 { + return def[0] + } + return "" +}