diff --git a/cmd/tsk/tsk.go b/cmd/tsk/tsk.go index 1fefa69..8daef3b 100644 --- a/cmd/tsk/tsk.go +++ b/cmd/tsk/tsk.go @@ -111,7 +111,10 @@ func main() { os.Exit(1) } - exec.RunTasks(exec.Config, &opts.tasks) + if err := exec.RunTasks(exec.Config, &opts.tasks); err != nil { + fmt.Println(err) + os.Exit(1) + } } func parseArgs(args []string, dashIndex int) (tasks []string, cliArgs string) { diff --git a/internal/task/task_test.go b/internal/task/task_test.go index df2e590..f146f5d 100644 --- a/internal/task/task_test.go +++ b/internal/task/task_test.go @@ -99,8 +99,9 @@ func TestConfig_CompileEnv(t *testing.T) { } _, err := config.CompileEnv() - if err == nil { - t.Fatalf("expected error, got nil") + // we expect this to be non-fatal + if err != nil { + t.Fatalf("expected nil, got err: %v", err) } }) } @@ -204,18 +205,6 @@ func TestTask_CompileEnv(t *testing.T) { } } }) - - t.Run("error loading dotenv", func(t *testing.T) { - task := Task{ - DotEnv: "nonexistent.env", - Dir: "/some/nonexistent/path", - } - - _, err := task.CompileEnv([]string{}) - if err == nil { - t.Fatalf("expected error, got nil") - } - }) } func TestRunCmd(t *testing.T) { diff --git a/internal/task/util.go b/internal/task/util.go index 2953fd3..94426ca 100644 --- a/internal/task/util.go +++ b/internal/task/util.go @@ -42,7 +42,9 @@ func readDotEnv(filename string) (map[string]string, error) { func appendDotEnvToEnv(env []string, dotenv string) ([]string, error) { additionalEnv, err := readDotEnv(dotenv) if err != nil { - return nil, err + // the dotenv file missing is non-fatal. log a warning and continue + fmt.Printf("Warning: Could not load dotenv file %s: %v\n", dotenv, err) + return env, nil } env = append(env, ConvertEnvToStringSlice(additionalEnv)...) return env, nil