X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=run.go;h=f356d81488c2d895ee22eee1874b549219f23169;hb=bc7d703f9a123395144adf394c27e87740ff5e72;hp=ca8eebbcd9ca542dd7c9f31e77dfaca18eb4b7de;hpb=99100e46ba3eb8e5f8b4b9bc7b9a52c0f881a282;p=goredo.git diff --git a/run.go b/run.go index ca8eebb..f356d81 100644 --- a/run.go +++ b/run.go @@ -587,6 +587,29 @@ func runScript(tgtOrig string, errs chan error, traced bool) error { } // Was $1 touched? + if fd, err := os.Open(path.Join(cwdOrig, tgt)); err == nil { + errTouched := errors.New("$1 was explicitly touched") + if inodePrev == nil { + fd.Close() + runErr.Err = errTouched + errs <- runErr + return + } else { + inode, err := inodeFromFile(fd) + fd.Close() + if err != nil { + runErr.Err = err + errs <- runErr + return + } + if !inode.Equals(inodePrev) { + runErr.Err = errTouched + errs <- runErr + return + } + } + } + if inodePrev != nil { if fd, err := os.Open(path.Join(cwdOrig, tgt)); err == nil { inode, err := inodeFromFile(fd)