X-Git-Url: http://www.git.cypherpunks.ru/?p=goredo.git;a=blobdiff_plain;f=dep.go;h=0e4f24fb0a1ef8872145d2715271f8eb5cff8adc;hp=7c4e35aa700a4edf7c52dcb88b19e344321d3b90;hb=3c87984511180d7bf865574123195588ea8c044c;hpb=c1b88a9301143b14fc3ef2a9b6bd9ac2ecf070f3 diff --git a/dep.go b/dep.go index 7c4e35a..0e4f24f 100644 --- a/dep.go +++ b/dep.go @@ -86,7 +86,7 @@ func fileHash(fd *os.File) (string, error) { 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 { @@ -104,9 +104,11 @@ func depWrite(fdDep *os.File, cwd, tgt string) error { 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}, @@ -137,7 +139,7 @@ func depsWrite(fdDep *os.File, tgts []string) error { 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{