123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package task
- import (
- "context"
- "fmt"
- "github.com/go-task/task/v3/internal/fingerprint"
- "github.com/go-task/task/v3/taskfile/ast"
- )
- // Status returns an error if any the of given tasks is not up-to-date
- func (e *Executor) Status(ctx context.Context, calls ...*ast.Call) error {
- for _, call := range calls {
- // Compile the task
- t, err := e.CompiledTask(call)
- if err != nil {
- return err
- }
- // Get the fingerprinting method to use
- method := e.Taskfile.Method
- if t.Method != "" {
- method = t.Method
- }
- // Check if the task is up-to-date
- isUpToDate, err := fingerprint.IsTaskUpToDate(ctx, t,
- fingerprint.WithMethod(method),
- fingerprint.WithTempDir(e.TempDir.Fingerprint),
- fingerprint.WithDry(e.Dry),
- fingerprint.WithLogger(e.Logger),
- )
- if err != nil {
- return err
- }
- if !isUpToDate {
- return fmt.Errorf(`task: Task "%s" is not up-to-date`, t.Name())
- }
- }
- return nil
- }
- func (e *Executor) statusOnError(t *ast.Task) error {
- method := t.Method
- if method == "" {
- method = e.Taskfile.Method
- }
- checker, err := fingerprint.NewSourcesChecker(method, e.TempDir.Fingerprint, e.Dry)
- if err != nil {
- return err
- }
- return checker.OnError(t)
- }
|