forked from coop-cloud-mirrors/godotenv
Merge pull request #29 from joho/respect_empty_external_env_vars
Respect preset empty external env vars
This commit is contained in:
commit
325433c502
@ -119,8 +119,15 @@ func loadFile(filename string, overload bool) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
currentEnv := map[string]bool{}
|
||||||
|
rawEnv := os.Environ()
|
||||||
|
for _, rawEnvLine := range rawEnv {
|
||||||
|
key := strings.Split(rawEnvLine, "=")[0]
|
||||||
|
currentEnv[key] = true
|
||||||
|
}
|
||||||
|
|
||||||
for key, value := range envMap {
|
for key, value := range envMap {
|
||||||
if os.Getenv(key) == "" || overload {
|
if !currentEnv[key] || overload {
|
||||||
os.Setenv(key, value)
|
os.Setenv(key, value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -100,10 +100,12 @@ func TestLoadDoesNotOverride(t *testing.T) {
|
|||||||
// ensure NO overload
|
// ensure NO overload
|
||||||
presets := map[string]string{
|
presets := map[string]string{
|
||||||
"OPTION_A": "do_not_override",
|
"OPTION_A": "do_not_override",
|
||||||
|
"OPTION_B": "",
|
||||||
}
|
}
|
||||||
|
|
||||||
expectedValues := map[string]string{
|
expectedValues := map[string]string{
|
||||||
"OPTION_A": "do_not_override",
|
"OPTION_A": "do_not_override",
|
||||||
|
"OPTION_B": "",
|
||||||
}
|
}
|
||||||
loadEnvAndCompareValues(t, Load, envFileName, expectedValues, presets)
|
loadEnvAndCompareValues(t, Load, envFileName, expectedValues, presets)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user