1
0
mirror of https://github.com/go-task/task.git synced 2025-11-25 22:32:55 +02:00

DO nor re-run up-to-date tasks, based on ModTime and given patterns

This commit is contained in:
Andrey Nering
2017-02-27 16:44:08 -03:00
parent 7cab3997c1
commit 0e1aaabf11
2 changed files with 77 additions and 1 deletions

53
file.go Normal file
View File

@@ -0,0 +1,53 @@
package task
import (
"os"
"time"
"github.com/mattn/go-zglob"
)
var dirsToSkip = []string{
".git",
"node_modules",
}
func minTime(pattern string) (minTime time.Time, err error) {
files, err := zglob.Glob(pattern)
if err != nil {
return time.Time{}, err
}
for _, f := range files {
info, err := os.Stat(f)
if err != nil {
return time.Time{}, err
}
modTime := info.ModTime()
if minTime.IsZero() || modTime.Before(minTime) {
minTime = modTime
}
}
return
}
func maxTime(pattern string) (maxTime time.Time, err error) {
files, err := zglob.Glob(pattern)
if err != nil {
return time.Time{}, err
}
for _, f := range files {
info, err := os.Stat(f)
if err != nil {
return time.Time{}, err
}
modTime := info.ModTime()
if modTime.After(maxTime) {
maxTime = modTime
}
}
return
}