diff --git a/internal/taskfile/read/taskfile.go b/internal/taskfile/read/taskfile.go index 5ee7e4e5..e6fd1bc7 100644 --- a/internal/taskfile/read/taskfile.go +++ b/internal/taskfile/read/taskfile.go @@ -63,14 +63,20 @@ func Taskfile(dir string, entrypoint string) (*taskfile.Taskfile, error) { } } - path = filepath.Join(dir, fmt.Sprintf("Taskfile_%s.yml", runtime.GOOS)) - if _, err = os.Stat(path); err == nil { - osTaskfile, err := readTaskfile(path) - if err != nil { - return nil, err - } - if err = taskfile.Merge(t, osTaskfile); err != nil { - return nil, err + v, err := t.ParsedVersion() + if err != nil { + return nil, err + } + if v < 3.0 { + path = filepath.Join(dir, fmt.Sprintf("Taskfile_%s.yml", runtime.GOOS)) + if _, err = os.Stat(path); err == nil { + osTaskfile, err := readTaskfile(path) + if err != nil { + return nil, err + } + if err = taskfile.Merge(t, osTaskfile); err != nil { + return nil, err + } } } diff --git a/internal/taskfile/taskfile.go b/internal/taskfile/taskfile.go index fc6b1299..d9a17ac0 100644 --- a/internal/taskfile/taskfile.go +++ b/internal/taskfile/taskfile.go @@ -1,5 +1,10 @@ package taskfile +import ( + "fmt" + "strconv" +) + // Taskfile represents a Taskfile.yml type Taskfile struct { Version string @@ -49,3 +54,12 @@ func (tf *Taskfile) UnmarshalYAML(unmarshal func(interface{}) error) error { } return nil } + +// ParsedVersion returns the version as a float64 +func (tf *Taskfile) ParsedVersion() (float64, error) { + v, err := strconv.ParseFloat(tf.Version, 64) + if err != nil { + return 0, fmt.Errorf(`task: Could not parse taskfile version "%s": %v`, tf.Version, err) + } + return v, nil +} diff --git a/task.go b/task.go index f70f15b0..f5439138 100644 --- a/task.go +++ b/task.go @@ -6,7 +6,6 @@ import ( "fmt" "io" "os" - "strconv" "sync" "sync/atomic" @@ -112,7 +111,7 @@ func (e *Executor) Setup() error { return err } - v, err := e.parsedVersion() + v, err := e.Taskfile.ParsedVersion() if err != nil { return err } @@ -246,14 +245,6 @@ func (e *Executor) Setup() error { return nil } -func (e *Executor) parsedVersion() (float64, error) { - v, err := strconv.ParseFloat(e.Taskfile.Version, 64) - if err != nil { - return 0, fmt.Errorf(`task: Could not parse taskfile version "%s": %v`, e.Taskfile.Version, err) - } - return v, nil -} - // RunTask runs a task by its name func (e *Executor) RunTask(ctx context.Context, call taskfile.Call) error { t, err := e.CompiledTask(call) diff --git a/variables.go b/variables.go index 569f56ed..dfab8764 100644 --- a/variables.go +++ b/variables.go @@ -23,7 +23,7 @@ func (e *Executor) CompiledTask(call taskfile.Call) (*taskfile.Task, error) { return nil, err } - v, err := e.parsedVersion() + v, err := e.Taskfile.ParsedVersion() if err != nil { return nil, err }