2020-08-17 13:25:17 -06:00
|
|
|
package hash
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
|
|
|
|
"github.com/mitchellh/hashstructure/v2"
|
2021-07-19 21:10:28 -06:00
|
|
|
|
2023-12-29 20:32:03 +00:00
|
|
|
"github.com/go-task/task/v3/taskfile/ast"
|
2020-08-17 13:25:17 -06:00
|
|
|
)
|
|
|
|
|
2023-12-29 20:32:03 +00:00
|
|
|
type HashFunc func(*ast.Task) (string, error)
|
2020-08-17 13:25:17 -06:00
|
|
|
|
2023-12-29 20:32:03 +00:00
|
|
|
func Empty(*ast.Task) (string, error) {
|
2020-08-17 13:25:17 -06:00
|
|
|
return "", nil
|
|
|
|
}
|
|
|
|
|
2023-12-29 20:32:03 +00:00
|
|
|
func Name(t *ast.Task) (string, error) {
|
2020-08-17 13:25:17 -06:00
|
|
|
return t.Task, nil
|
|
|
|
}
|
|
|
|
|
2023-12-29 20:32:03 +00:00
|
|
|
func Hash(t *ast.Task) (string, error) {
|
2020-08-17 13:25:17 -06:00
|
|
|
h, err := hashstructure.Hash(t, hashstructure.FormatV2, nil)
|
|
|
|
return fmt.Sprintf("%s:%d", t.Task, h), err
|
|
|
|
}
|