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