mirror of
https://github.com/go-task/task.git
synced 2024-12-12 10:45:49 +02:00
5e9851f42f
* feat: update minimum version to 1.22 * refactor: use int range iterator * refactor: loop variables * refactor: replace slicesext.FirstNonZero with cmp.Or * refactor: use slices.Concat instead of append * fix: unused param * fix: linting
26 lines
437 B
Go
26 lines
437 B
Go
package task
|
|
|
|
import (
|
|
"cmp"
|
|
"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 := cmp.Or(t.Run, 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)
|
|
}
|