src.elv.sh@v0.21.0-dev.0.20240515223629-06979efb9a2a/pkg/eval/builtin_fn_env.go (about) 1 package eval 2 3 import ( 4 "errors" 5 "os" 6 ) 7 8 // ErrNonExistentEnvVar is raised by the get-env command when the environment 9 // variable does not exist. 10 var ErrNonExistentEnvVar = errors.New("non-existent environment variable") 11 12 func init() { 13 addBuiltinFns(map[string]any{ 14 "has-env": hasEnv, 15 "get-env": getEnv, 16 "set-env": os.Setenv, 17 "unset-env": os.Unsetenv, 18 }) 19 } 20 21 func hasEnv(key string) bool { 22 _, ok := os.LookupEnv(key) 23 return ok 24 } 25 26 func getEnv(key string) (string, error) { 27 value, ok := os.LookupEnv(key) 28 if !ok { 29 return "", ErrNonExistentEnvVar 30 } 31 return value, nil 32 }