From 034acc219052fab168a0b5c5c6537b3c9260e47c Mon Sep 17 00:00:00 2001 From: "John Barton (joho)" Date: Tue, 28 Mar 2017 11:54:56 +1100 Subject: [PATCH] Change check of existing env to respect empty (but set) vars. --- godotenv.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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) } }