/*
goredo -- djb's redo implementation on pure Go
-Copyright (C) 2020-2021 Sergey Matveev <stargrave@stargrave.org>
+Copyright (C) 2020-2023 Sergey Matveev <stargrave@stargrave.org>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
depPath := path.Join(cwd, RedoDir, tgt+DepSuffix)
fdDep, err := os.Open(depPath)
if err != nil {
- return nil, err
+ return nil, ErrLine(err)
}
defer fdDep.Close()
var dep string
if errors.Is(err, io.EOF) {
break
}
- return nil, err
+ return nil, ErrLine(err)
}
switch m["Type"] {
case DepTypeIfcreate:
data[DotNodes{tgtOrig, cwdMustRel(cwd, m["Target"])}] = true
case DepTypeIfchange:
dep = m["Target"]
+ if dep == tgt {
+ continue
+ }
data[DotNodes{tgtOrig, cwdMustRel(cwd, dep)}] = false
- if isSrc(cwd, dep) || dep == tgt {
+ if isSrc(cwd, dep) {
continue
}
data, err = dotWalker(data, cwdMustRel(cwd, dep))