mirror of
https://github.com/go-task/task.git
synced 2025-12-16 19:57:43 +01:00
54 lines
834 B
Go
54 lines
834 B
Go
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
|
|
}
|