X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=ood.go;h=ac5730cee6dbabf91b6d0b4c1325be70504bf456;hb=6dce71355599d4caf8267f6f02520037480f7ba3;hp=c11b23f5995ab89ef95089477828429e5df00cc0;hpb=e1afa1a3b0f7e4e06f636f584a47bb8cfc885e7c;p=goredo.git diff --git a/ood.go b/ood.go index c11b23f..ac5730c 100644 --- a/ood.go +++ b/ood.go @@ -32,11 +32,6 @@ import ( ) const ( - DepTypeIfcreate = "ifcreate" - DepTypeIfchange = "ifchange" - DepTypeAlways = "always" - DepTypeStamp = "stamp" - EnvOODTgtsFd = "REDO_OOD_TGTS_FD" EnvOODTgtsLockFd = "REDO_OOD_TGTS_LOCK_FD" ) @@ -48,9 +43,6 @@ var ( OODCache = make(map[string]bool) FileExistsCache = make(map[string]bool) - DepInfoCache = make(map[string]*DepInfo) - - ErrMissingTarget = errors.New("invalid format of .rec: missing Target") ) func FileExists(p string) bool { @@ -86,14 +78,14 @@ func isSrc(tgt *Tgt) bool { if FileExists(tgt.a + ".do") { return false } - if FileExists(tgt.Dep()) { + if FileExists(tgt.dep) { return false } return true } func isOODByBuildUUID(tgt *Tgt) bool { - build, err := depReadBuild(tgt.Dep()) + build, err := depBuildRead(tgt.dep) return err != nil || build != BuildUUID } @@ -116,7 +108,7 @@ func isOOD(tgt *Tgt, level int, seen map[string]*Tgt) (bool, error) { tracef(CDebug, "ood: %s%s -> is source", indent, tgt) } else { ood = true - tracef(CDebug, "ood: %s%s -> no dep: %s", indent, tgt, tgt.Dep()) + tracef(CDebug, "ood: %s%s -> no dep: %s", indent, tgt, tgt.dep) } OODCache[tgt.rel] = ood return ood, nil @@ -169,13 +161,13 @@ func isOOD(tgt *Tgt, level int, seen map[string]*Tgt) (bool, error) { return ood, TgtError{tgt, ErrLine(err)} } - if inode.Size != dep.inode.Size { + if inode[:8] != ifchange.Inode()[:8] { tracef(CDebug, "ood: %s%s -> %s: size differs", indent, tgt, ifchange.tgt) ood = true - OODCache[dep.tgt.rel] = ood + OODCache[ifchange.tgt.rel] = ood goto Done } - if InodeTrust != InodeTrustNone && inode.Equals(dep.inode) { + if InodeTrust != InodeTrustNone && inode.Equals(ifchange.Inode()) { tracef(CDebug, "ood: %s%s -> %s: same inode", indent, tgt, ifchange.tgt) } else { tracef(CDebug, "ood: %s%s -> %s: inode differs", indent, tgt, ifchange.tgt) @@ -188,7 +180,7 @@ func isOOD(tgt *Tgt, level int, seen map[string]*Tgt) (bool, error) { if err != nil { return ood, TgtError{tgt, ErrLine(err)} } - if dep.hash != hsh { + if ifchange.Hash() != hsh { tracef(CDebug, "ood: %s%s -> %s: hash differs", indent, tgt, ifchange.tgt) ood = true OODCache[ifchange.tgt.rel] = ood