mirror of
https://github.com/go-task/task.git
synced 2024-12-04 10:24:45 +02:00
247c2586c2
* refactor: ast package * feat: read -> taskfile * refactor: taskfile.Taskfile -> taskfile.Read * refactor: move merge function back into taskfile package * refactor: rename taskfile.go to read.go
29 lines
445 B
Go
29 lines
445 B
Go
package task
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/go-task/task/v3/internal/hash"
|
|
"github.com/go-task/task/v3/taskfile/ast"
|
|
)
|
|
|
|
func (e *Executor) GetHash(t *ast.Task) (string, error) {
|
|
r := t.Run
|
|
if r == "" {
|
|
r = e.Taskfile.Run
|
|
}
|
|
|
|
var h hash.HashFunc
|
|
switch r {
|
|
case "always":
|
|
h = hash.Empty
|
|
case "once":
|
|
h = hash.Name
|
|
case "when_changed":
|
|
h = hash.Hash
|
|
default:
|
|
return "", fmt.Errorf(`task: invalid run "%s"`, r)
|
|
}
|
|
return h(t)
|
|
}
|