Skip to content

Commit 726cc8b

Browse files
authored
Merge pull request #22 from mmilata/dont-swallow-errors
Improve error handling
2 parents 4ed1339 + 861984c commit 726cc8b

File tree

3 files changed

+28
-3
lines changed

3 files changed

+28
-3
lines changed

fixtures/invalid1.env

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
INVALID LINE
2+
foo=bar

godotenv.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -143,13 +143,19 @@ func readFile(filename string) (envMap map[string]string, err error) {
143143
lines = append(lines, scanner.Text())
144144
}
145145

146+
if err = scanner.Err(); err != nil {
147+
return
148+
}
149+
146150
for _, fullLine := range lines {
147151
if !isIgnoredLine(fullLine) {
148-
key, value, err := parseLine(fullLine)
152+
var key, value string
153+
key, value, err = parseLine(fullLine)
149154

150-
if err == nil {
151-
envMap[key] = value
155+
if err != nil {
156+
return
152157
}
158+
envMap[key] = value
153159
}
154160
}
155161
return

godotenv_test.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,3 +269,20 @@ func TestLinesToIgnore(t *testing.T) {
269269
t.Error("ignoring a perfectly valid line to parse")
270270
}
271271
}
272+
273+
func TestErrorReadDirectory(t *testing.T) {
274+
envFileName := "fixtures/"
275+
envMap, err := Read(envFileName)
276+
277+
if err == nil {
278+
t.Errorf("Expected error, got %v", envMap)
279+
}
280+
}
281+
282+
func TestErrorParsing(t *testing.T) {
283+
envFileName := "fixtures/invalid1.env"
284+
envMap, err := Read(envFileName)
285+
if err == nil {
286+
t.Errorf("Expected error, got %v", envMap)
287+
}
288+
}

0 commit comments

Comments
 (0)