github.com/elves/elvish@v0.15.0/pkg/eval/vars/env.go (about) 1 package vars 2 3 import ( 4 "errors" 5 "os" 6 ) 7 8 var errEnvMustBeString = errors.New("environment variable can only be set string values") 9 10 type envVariable struct { 11 name string 12 } 13 14 func (ev envVariable) Set(val interface{}) error { 15 if s, ok := val.(string); ok { 16 os.Setenv(ev.name, s) 17 return nil 18 } 19 return errEnvMustBeString 20 } 21 22 func (ev envVariable) Get() interface{} { 23 return os.Getenv(ev.name) 24 } 25 26 // FromEnv returns a Var corresponding to the named environment variable. 27 func FromEnv(name string) Var { 28 return envVariable{name} 29 }