mirror of
https://github.com/go-task/task.git
synced 2024-12-12 10:45:49 +02:00
3aaa3223a0
* fix: run once in shared dependencies * feat: add test
25 lines
489 B
Go
25 lines
489 B
Go
package hash
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/mitchellh/hashstructure/v2"
|
|
|
|
"github.com/go-task/task/v3/taskfile/ast"
|
|
)
|
|
|
|
type HashFunc func(*ast.Task) (string, error)
|
|
|
|
func Empty(*ast.Task) (string, error) {
|
|
return "", nil
|
|
}
|
|
|
|
func Name(t *ast.Task) (string, error) {
|
|
return fmt.Sprintf("%s:%s", t.Location.Taskfile, t.LocalName()), nil
|
|
}
|
|
|
|
func Hash(t *ast.Task) (string, error) {
|
|
h, err := hashstructure.Hash(t, hashstructure.FormatV2, nil)
|
|
return fmt.Sprintf("%s:%d", t.Task, h), err
|
|
}
|