1
0
mirror of https://github.com/go-task/task.git synced 2025-02-21 19:48:29 +02:00

Fix Checksum.IsUpToDate

- Check whether generates exist after the creation of checksum file
- Check whether generates exist if only the user specified generates fields
- Check for each generates field instead of taking it as a whole
This commit is contained in:
Seiichi Uchida 2019-08-21 13:35:16 +09:00
parent 01101a4c9b
commit fac51dcf03

View File

@ -30,22 +30,8 @@ func (c *Checksum) IsUpToDate() (bool, error) {
sources, err := globs(c.Dir, c.Sources)
if err != nil {
return false, err
return false, nil
}
generates, err := glob(c.Dir, c.Generates)
if err != nil {
return false, err
}
if len(generates) == 0 {
return false, err
}
for _, generate := range generates {
if _, err := os.Stat(generate); err != nil {
return false, nil
}
}
newMd5, err := c.checksum(sources...)
if err != nil {
return false, nil
@ -57,6 +43,20 @@ func (c *Checksum) IsUpToDate() (bool, error) {
return false, err
}
}
if len(c.Generates) != 0 {
// For each specified 'generates' field, check whether the files actually exist.
for _, g := range c.Generates {
generates, err := glob(c.Dir, g)
if err != nil {
return false, nil
}
if len(generates) == 0 {
return false, nil
}
}
}
return oldMd5 == newMd5, nil
}