diff options
Diffstat (limited to 'set.go')
| -rw-r--r-- | set.go | 42 |
1 files changed, 42 insertions, 0 deletions
@@ -0,0 +1,42 @@ +package env + +import "errors" + +func SetGlobal(global string, varname string, newValue string) error { + if envPB == nil { + return NotInitialized + } + saveMu.Lock() + defer saveMu.Unlock() + found := envPB.FindByVar(varname) + if found != nil { + return errors.New("already set") + } + + newvar := new(Key) + newvar.Var = varname + newvar.Value = newValue + newvar.Global = global + envPB.Append(newvar) + return nil +} + +func Set(varname string, newValue string) error { + saveMu.Lock() + defer saveMu.Unlock() + if envPB == nil { + return NotInitialized + } + found := envPB.FindByVar(varname) + if found != nil { + found.Value = newValue + saveENVnolock(envPB.Filename) + } + + newvar := new(Key) + newvar.Var = varname + newvar.Value = newValue + envPB.Append(newvar) + saveENVnolock(envPB.Filename) + return nil +} |
