elvish/pkg/eval/vars/env.go

30 lines
518 B
Go

package vars
import (
"errors"
"os"
)
var errEnvMustBeString = errors.New("environment variable can only be set string values")
type envVariable struct {
name string
}
func (ev envVariable) Set(val any) error {
if s, ok := val.(string); ok {
os.Setenv(ev.name, s)
return nil
}
return errEnvMustBeString
}
func (ev envVariable) Get() any {
return os.Getenv(ev.name)
}
// FromEnv returns a Var corresponding to the named environment variable.
func FromEnv(name string) Var {
return envVariable{name}
}