return hex.EncodeToString(h.Sum(nil)), nil
}
-func depWrite(fdDep *os.File, cwd, tgt string) error {
+func depWrite(fdDep *os.File, cwd, tgt, hsh string) error {
tracef(CDebug, "ifchange: %s <- %s", fdDep.Name(), tgt)
fd, err := os.Open(path.Join(cwd, tgt))
if err != nil {
if err != nil {
return err
}
- hsh, err := fileHash(fd)
- if err != nil {
- return err
+ if hsh == "" {
+ hsh, err = fileHash(fd)
+ if err != nil {
+ return err
+ }
}
fields := []recfile.Field{
{Name: "Type", Value: DepTypeIfchange},
panic(err)
}
if _, errStat := os.Stat(tgt); errStat == nil {
- err = depWrite(fdDep, tgtDir, tgtRel)
+ err = depWrite(fdDep, tgtDir, tgtRel, "")
} else {
tracef(CDebug, "ifchange: %s <- %s (non-existing)", fdDep.Name(), tgtRel)
fields := []recfile.Field{