diff options
| author | Jeff Carr <[email protected]> | 2025-10-21 06:40:48 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-10-21 06:40:48 -0500 |
| commit | 3cf635e3c41be385b50778f7818fd50b006f1671 (patch) | |
| tree | dba1a8c80e363d4f86a5f81623bc1f603e39318e /save.go | |
| parent | 4d3349c453879051a7499fa07a97dfcb20b554ea (diff) | |
something to act like bash ENV
Diffstat (limited to 'save.go')
| -rw-r--r-- | save.go | 88 |
1 files changed, 88 insertions, 0 deletions
@@ -0,0 +1,88 @@ +package ENV + +import ( + "os" + "strings" + + "go.wit.com/log" +) + +// saves your applications config file +func Save() error { + return saveENV() +} + +func saveENV() error { + filename, err := getConfigFilenameENV() + if err != nil { + return err + } + saveMu.Lock() + defer saveMu.Unlock() + return saveENVnolock(filename) +} + +func saveENVnolock(filename string) error { + outENV, err := formatENV() + if err == nil { + log.Info("SAVEENV IS RUNNING") + log.Info("SAVEENV IS RUNNING") + log.Info("SAVEENV IS RUNNING") + log.Info(outENV) + } + return os.WriteFile(filename, []byte(outENV), 0644) +} + +func Get(flag string) string { + saveMu.Lock() + defer saveMu.Unlock() + if envPB == nil { + return "" + } + c := findByLower(flag) + if c == nil { + return "" + } + + return c.Value +} + +func True(flag string) bool { + saveMu.Lock() + defer saveMu.Unlock() + if envPB == nil { + return false + } + found := envPB.FindByVar(flag) + if found == nil { + return false + } + if strings.ToLower(found.Value) == "true" { + return true + } + return false +} + +func Set(varname string, newValue string) error { + filename, err := getConfigFilenameENV() + if err != nil { + return err + } + saveMu.Lock() + defer saveMu.Unlock() + if envPB == nil { + return NotInitialized + } + found := envPB.FindByVar(varname) + if found != nil { + found.Value = newValue + saveENVnolock(filename) + } + + newvar := new(Key) + newvar.Var = varname + newvar.Value = newValue + envPB.Append(newvar) + saveENVnolock(filename) + return nil +} |
