diff --git a/task_test.go b/task_test.go index 03ee2ee1b2..5b54317184 100644 --- a/task_test.go +++ b/task_test.go @@ -1052,7 +1052,7 @@ func TestIncludesOptionalImplicitFalse(t *testing.T) { const dir = "testdata/includes_optional_implicit_false" wd, _ := os.Getwd() - message := "stat %s/%s/TaskfileOptional.yml: no such file or directory" + message := "task: No Taskfile found at \"%s/%s/TaskfileOptional.yml\"" expected := fmt.Sprintf(message, wd, dir) e := task.NewExecutor( @@ -1072,7 +1072,7 @@ func TestIncludesOptionalExplicitFalse(t *testing.T) { const dir = "testdata/includes_optional_explicit_false" wd, _ := os.Getwd() - message := "stat %s/%s/TaskfileOptional.yml: no such file or directory" + message := "task: No Taskfile found at \"%s/%s/TaskfileOptional.yml\"" expected := fmt.Sprintf(message, wd, dir) e := task.NewExecutor( diff --git a/taskfile/node_file.go b/taskfile/node_file.go index 901909e7f5..2d895c6569 100644 --- a/taskfile/node_file.go +++ b/taskfile/node_file.go @@ -5,6 +5,7 @@ import ( "os" "path/filepath" + "github.com/go-task/task/v3/errors" "github.com/go-task/task/v3/internal/execext" "github.com/go-task/task/v3/internal/filepathext" "github.com/go-task/task/v3/internal/fsext" @@ -20,6 +21,9 @@ func NewFileNode(entrypoint, dir string, opts ...NodeOption) (*FileNode, error) // Find the entrypoint file resolvedEntrypoint, err := fsext.Search(entrypoint, dir, defaultTaskfiles) if err != nil { + if errors.Is(err, os.ErrNotExist) { + return nil, errors.TaskfileNotFoundError{URI: entrypoint, Walk: false} + } return nil, err }