Skip to content

Commit

Permalink
fix: Print dotenv file path when there is an error reading file
Browse files Browse the repository at this point in the history
Fixes #1261.
  • Loading branch information
pbitty committed Sep 27, 2024
1 parent e619bad commit 326e7f5
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 1 deletion.
12 changes: 12 additions & 0 deletions task_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1657,6 +1657,18 @@ func TestDotenvHasEnvVarInPath(t *testing.T) {
tt.Run(t)
}

func TestTaskDotenvParseErrorMessage(t *testing.T) {
e := task.Executor{
Dir: "testdata/dotenv/parse_error",
}

path, _ := filepath.Abs(filepath.Join(e.Dir, ".env-with-error"))
expected := fmt.Sprintf("error reading env file %s:", path)

err := e.Setup()
require.ErrorContains(t, err, expected)
}

func TestTaskDotenv(t *testing.T) {
tt := fileContentTest{
Dir: "testdata/dotenv_task/default",
Expand Down
3 changes: 2 additions & 1 deletion taskfile/dotenv.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package taskfile

import (
"fmt"
"os"

"github.com/joho/godotenv"
Expand Down Expand Up @@ -37,7 +38,7 @@ func Dotenv(c *compiler.Compiler, tf *ast.Taskfile, dir string) (*ast.Vars, erro

envs, err := godotenv.Read(dotEnvPath)
if err != nil {
return nil, err
return nil, fmt.Errorf("error reading env file %s: %w", dotEnvPath, err)
}
for key, value := range envs {
if ok := env.Exists(key); !ok {
Expand Down
2 changes: 2 additions & 0 deletions testdata/dotenv/parse_error/.env-with-error
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#intentional parse error
SOME_VAR
8 changes: 8 additions & 0 deletions testdata/dotenv/parse_error/Taskfile.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
version: '3'

dotenv: ['.env-with-error']

tasks:
default:
cmd: "true"

0 comments on commit 326e7f5

Please sign in to comment.