mirror of
https://github.com/go-task/task.git
synced 2025-02-03 13:22:11 +02:00
rename file.go to status.go, and move related code there
This commit is contained in:
parent
72250b32d3
commit
dc6cb68327
@ -1,13 +1,56 @@
|
||||
package task
|
||||
|
||||
import (
|
||||
"context"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"time"
|
||||
|
||||
"github.com/go-task/task/execext"
|
||||
"github.com/mattn/go-zglob"
|
||||
)
|
||||
|
||||
func (e *Executor) isTaskUpToDate(ctx context.Context, t *Task) (bool, error) {
|
||||
if len(t.Status) > 0 {
|
||||
return e.isUpToDateStatus(ctx, t)
|
||||
}
|
||||
return e.isUpToDateTimestamp(ctx, t)
|
||||
}
|
||||
|
||||
func (e *Executor) isUpToDateStatus(ctx context.Context, t *Task) (bool, error) {
|
||||
for _, s := range t.Status {
|
||||
err := execext.RunCommand(&execext.RunCommandOptions{
|
||||
Context: ctx,
|
||||
Command: s,
|
||||
Dir: e.getTaskDir(t),
|
||||
Env: e.getEnviron(t),
|
||||
})
|
||||
if err != nil {
|
||||
return false, nil
|
||||
}
|
||||
}
|
||||
return true, nil
|
||||
}
|
||||
|
||||
func (e *Executor) isUpToDateTimestamp(ctx context.Context, t *Task) (bool, error) {
|
||||
if len(t.Sources) == 0 || len(t.Generates) == 0 {
|
||||
return false, nil
|
||||
}
|
||||
|
||||
dir := e.getTaskDir(t)
|
||||
|
||||
sourcesMaxTime, err := getPatternsMaxTime(dir, t.Sources)
|
||||
if err != nil || sourcesMaxTime.IsZero() {
|
||||
return false, nil
|
||||
}
|
||||
|
||||
generatesMinTime, err := getPatternsMinTime(dir, t.Generates)
|
||||
if err != nil || generatesMinTime.IsZero() {
|
||||
return false, nil
|
||||
}
|
||||
return !generatesMinTime.Before(sourcesMaxTime), nil
|
||||
}
|
||||
|
||||
func minTime(a, b time.Time) time.Time {
|
||||
if !a.IsZero() && a.Before(b) {
|
||||
return a
|
41
task.go
41
task.go
@ -178,47 +178,6 @@ func (e *Executor) runDeps(ctx context.Context, t *Task) error {
|
||||
return g.Wait()
|
||||
}
|
||||
|
||||
func (e *Executor) isTaskUpToDate(ctx context.Context, t *Task) (bool, error) {
|
||||
if len(t.Status) > 0 {
|
||||
return e.isUpToDateStatus(ctx, t)
|
||||
}
|
||||
return e.isUpToDateTimestamp(ctx, t)
|
||||
}
|
||||
|
||||
func (e *Executor) isUpToDateStatus(ctx context.Context, t *Task) (bool, error) {
|
||||
for _, s := range t.Status {
|
||||
err := execext.RunCommand(&execext.RunCommandOptions{
|
||||
Context: ctx,
|
||||
Command: s,
|
||||
Dir: e.getTaskDir(t),
|
||||
Env: e.getEnviron(t),
|
||||
})
|
||||
if err != nil {
|
||||
return false, nil
|
||||
}
|
||||
}
|
||||
return true, nil
|
||||
}
|
||||
|
||||
func (e *Executor) isUpToDateTimestamp(ctx context.Context, t *Task) (bool, error) {
|
||||
if len(t.Sources) == 0 || len(t.Generates) == 0 {
|
||||
return false, nil
|
||||
}
|
||||
|
||||
dir := e.getTaskDir(t)
|
||||
|
||||
sourcesMaxTime, err := getPatternsMaxTime(dir, t.Sources)
|
||||
if err != nil || sourcesMaxTime.IsZero() {
|
||||
return false, nil
|
||||
}
|
||||
|
||||
generatesMinTime, err := getPatternsMinTime(dir, t.Generates)
|
||||
if err != nil || generatesMinTime.IsZero() {
|
||||
return false, nil
|
||||
}
|
||||
return !generatesMinTime.Before(sourcesMaxTime), nil
|
||||
}
|
||||
|
||||
func (e *Executor) runCommand(ctx context.Context, t *Task, call Call, i int) error {
|
||||
cmd := t.Cmds[i]
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user