From 9c77c4efafed6faf9e08ac85b26b4c17a0654545 Mon Sep 17 00:00:00 2001 From: David Bochenski Date: Wed, 25 Jun 2014 16:26:24 +0100 Subject: [PATCH 1/3] Closes #4 Use bufio.Scanner to read newLines --- godotenv.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/godotenv.go b/godotenv.go index 84e2ff9..b811130 100644 --- a/godotenv.go +++ b/godotenv.go @@ -16,8 +16,8 @@ and all the env vars declared in .env will be avaiable through os.Getenv("SOME_E package godotenv import ( + "bufio" "errors" - "io/ioutil" "os" "strings" ) @@ -87,14 +87,21 @@ func loadFile(filename string) (err error) { } func readFile(filename string) (envMap map[string]string, err error) { - content, err := ioutil.ReadFile(filename) + file, err := os.Open(filename) + + // content, err := ioutil.ReadFile(filename) if err != nil { return } + defer file.Close() envMap = make(map[string]string) - lines := strings.Split(string(content), "\n") + var lines []string + scanner := bufio.NewScanner(file) + for scanner.Scan() { + lines = append(lines, scanner.Text()) + } for _, fullLine := range lines { if !isIgnoredLine(fullLine) { From ae0bc4ea3cc911675c4902a4ee88d9862741c4a1 Mon Sep 17 00:00:00 2001 From: David Bochenski Date: Wed, 9 Jul 2014 15:35:36 +0100 Subject: [PATCH 2/3] Fix remaining failing test on windows --- godotenv_test.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/godotenv_test.go b/godotenv_test.go index c6d9f2d..b008e15 100644 --- a/godotenv_test.go +++ b/godotenv_test.go @@ -32,8 +32,9 @@ func loadEnvAndCompareValues(t *testing.T, envFileName string, expectedValues ma func TestLoadWithNoArgsLoadsDotEnv(t *testing.T) { err := Load() - if err.Error() != "open .env: no such file or directory" { - t.Errorf("Didn't try and open .env by default") + pathError := err.(*os.PathError) + if pathError == nil || pathError.Op != "open" || pathError.Path != ".env"{ + t.Errorf("Didn't try and open .env by default")11 } } From bdacd70f4cd4b3be197ccaa6e7e72ee399714a7b Mon Sep 17 00:00:00 2001 From: David Bochenski Date: Thu, 10 Jul 2014 10:14:38 +0100 Subject: [PATCH 3/3] fixup --- godotenv_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/godotenv_test.go b/godotenv_test.go index b008e15..705855c 100644 --- a/godotenv_test.go +++ b/godotenv_test.go @@ -34,7 +34,7 @@ func TestLoadWithNoArgsLoadsDotEnv(t *testing.T) { err := Load() pathError := err.(*os.PathError) if pathError == nil || pathError.Op != "open" || pathError.Path != ".env"{ - t.Errorf("Didn't try and open .env by default")11 + t.Errorf("Didn't try and open .env by default") } }