github.com/elves/Elvish@v0.12.0/eval/builtin_fn_env.go (about)

     1  package eval
     2  
     3  import (
     4  	"errors"
     5  	"os"
     6  )
     7  
     8  var errNonExistentEnvVar = errors.New("non-existent environment variable")
     9  
    10  func init() {
    11  	addBuiltinFns(map[string]interface{}{
    12  		"has-env":   hasEnv,
    13  		"get-env":   getEnv,
    14  		"set-env":   os.Setenv,
    15  		"unset-env": os.Unsetenv,
    16  	})
    17  }
    18  
    19  func hasEnv(key string) bool {
    20  	_, ok := os.LookupEnv(key)
    21  	return ok
    22  }
    23  
    24  func getEnv(key string) (string, error) {
    25  	value, ok := os.LookupEnv(key)
    26  	if !ok {
    27  		return "", errNonExistentEnvVar
    28  	}
    29  	return value, nil
    30  }