"os"
"os/exec"
"path"
+ "path/filepath"
"strings"
"sync"
"syscall"
}
// Temporary file for stdout
- fdStdout, err := tempfile(cwd, tgt)
+ fdStdout, err := tempfile(cwdOrig, tgt)
if err != nil {
cleanup()
return TgtErr{tgtOrig, err}
}
tmpPath := fdStdout.Name() + ".3" // and for $3
- args = append(args, tgt, basename, path.Base(tmpPath))
+ tmpPathRel, err := filepath.Rel(cwd, tmpPath)
+ if err != nil {
+ panic(err)
+ }
+ args = append(
+ args,
+ path.Join(dirPrefix, tgt),
+ path.Join(dirPrefix, basename),
+ tmpPathRel,
+ )
cmd := exec.Command(cmdName, args...)
cmd.Dir = cwd