diff --git a/godotenv.go b/godotenv.go index 016acc1..0d9066c 100644 --- a/godotenv.go +++ b/godotenv.go @@ -119,8 +119,15 @@ func loadFile(filename string, overload bool) error { 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 { - if os.Getenv(key) == "" || overload { + if !currentEnv[key] || overload { os.Setenv(key, value) } }