cleanup()
return TgtErr{tgtOrig, errors.New("no .do found")}
}
- if err = writeDep(fdDep, cwd, doFile); err != nil {
- cleanup()
- return TgtErr{tgtOrig, err}
- }
// Determine basename and DIRPREFIX
ents := strings.Split(cwd, "/")
cwd = path.Join(cwd, "..")
}
cwd = path.Clean(cwd)
+ doFilePath := path.Join(cwd, doFile)
basename := tgt
runErr := RunErr{Tgt: tgtOrig}
if strings.HasPrefix(doFile, "default.") {
basename = tgt[:len(tgt)-(len(doFile)-len("default.")-len(".do"))-1]
runErr.DoFile = doFile
}
+
+ if err = writeDep(fdDep, cwd, doFile); err != nil {
+ cleanup()
+ return TgtErr{tgtOrig, err}
+ }
trace(CWait, "%s", runErr.Name())
- doFile = path.Base(doFile)
// Prepare command line
var cmdName string
var args []string
- if err = unix.Access(path.Join(cwd, doFile), unix.X_OK); err == nil {
+ if err = unix.Access(doFilePath, unix.X_OK); err == nil {
// Ordinary executable file
- cmdName = doFile
+ cmdName = doFilePath
args = make([]string, 0, 3)
} else {
- fd, err := os.Open(path.Join(cwd, doFile))
+ fd, err := os.Open(doFilePath)
if err != nil {
cleanup()
return TgtErr{tgtOrig, err}