mirror of
https://github.com/go-task/task.git
synced 2025-06-08 23:56:21 +02:00
Change patterns to slice to support multiple
This commit is contained in:
parent
0e1aaabf11
commit
b8b52b94f9
38
file.go
38
file.go
@ -12,7 +12,41 @@ var dirsToSkip = []string{
|
|||||||
"node_modules",
|
"node_modules",
|
||||||
}
|
}
|
||||||
|
|
||||||
func minTime(pattern string) (minTime time.Time, err error) {
|
func minTime(a, b time.Time) time.Time {
|
||||||
|
if !a.IsZero() && a.Before(b) {
|
||||||
|
return a
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
func maxTime(a, b time.Time) time.Time {
|
||||||
|
if a.After(b) {
|
||||||
|
return a
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
func getPatternsMinTime(patterns []string) (m time.Time, err error) {
|
||||||
|
for _, p := range patterns {
|
||||||
|
mp, err := getPatternMinTime(p)
|
||||||
|
if err != nil {
|
||||||
|
return time.Time{}, err
|
||||||
|
}
|
||||||
|
m = minTime(m, mp)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
func getPatternsMaxTime(patterns []string) (m time.Time, err error) {
|
||||||
|
for _, p := range patterns {
|
||||||
|
mp, err := getPatternMaxTime(p)
|
||||||
|
if err != nil {
|
||||||
|
return time.Time{}, err
|
||||||
|
}
|
||||||
|
m = maxTime(m, mp)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func getPatternMinTime(pattern string) (minTime time.Time, err error) {
|
||||||
files, err := zglob.Glob(pattern)
|
files, err := zglob.Glob(pattern)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return time.Time{}, err
|
return time.Time{}, err
|
||||||
@ -32,7 +66,7 @@ func minTime(pattern string) (minTime time.Time, err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func maxTime(pattern string) (maxTime time.Time, err error) {
|
func getPatternMaxTime(pattern string) (maxTime time.Time, err error) {
|
||||||
files, err := zglob.Glob(pattern)
|
files, err := zglob.Glob(pattern)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return time.Time{}, err
|
return time.Time{}, err
|
||||||
|
10
task.go
10
task.go
@ -30,8 +30,8 @@ func init() {
|
|||||||
type Task struct {
|
type Task struct {
|
||||||
Cmds []string
|
Cmds []string
|
||||||
Deps []string
|
Deps []string
|
||||||
Sources string
|
Sources []string
|
||||||
Generates string
|
Generates []string
|
||||||
}
|
}
|
||||||
|
|
||||||
type TaskNotFoundError struct {
|
type TaskNotFoundError struct {
|
||||||
@ -104,16 +104,16 @@ func RunTask(name string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func isTaskUpToDate(t *Task) bool {
|
func isTaskUpToDate(t *Task) bool {
|
||||||
if t.Sources == "" || t.Generates == "" {
|
if len(t.Sources) == 0 || len(t.Generates) == 0 {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
sourcesMaxTime, err := maxTime(t.Sources)
|
sourcesMaxTime, err := getPatternsMaxTime(t.Sources)
|
||||||
if err != nil || sourcesMaxTime.IsZero() {
|
if err != nil || sourcesMaxTime.IsZero() {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
generatesMinTime, err := minTime(t.Generates)
|
generatesMinTime, err := getPatternsMinTime(t.Generates)
|
||||||
if err != nil || generatesMinTime.IsZero() {
|
if err != nil || generatesMinTime.IsZero() {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user