From fac51dcf0397d8f4b46bdb1056f2410b5fb20650 Mon Sep 17 00:00:00 2001 From: Seiichi Uchida Date: Wed, 21 Aug 2019 13:35:16 +0900 Subject: [PATCH] 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 --- internal/status/checksum.go | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/internal/status/checksum.go b/internal/status/checksum.go index 0434bc0c..7d5d8b7a 100644 --- a/internal/status/checksum.go +++ b/internal/status/checksum.go @@ -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 }