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  }