} else {
cmd.ExtraFiles = append(cmd.ExtraFiles, JSR)
cmd.ExtraFiles = append(cmd.ExtraFiles, JSW)
- cmd.Env = append(cmd.Env, fmt.Sprintf(
- "%s=%s %s%d,%d",
- MakeFlagsName, MakeFlags, MakeJSArg, 3+fdNum+0, 3+fdNum+1,
- ))
+ makeFlags := fmt.Sprintf(
+ "%s %s%d,%d", MakeFlags, MakeJSArg, 3+fdNum+0, 3+fdNum+1,
+ )
+ makeFlags = strings.Trim(makeFlags, " ")
+ cmd.Env = append(cmd.Env, fmt.Sprintf("%s=%s", MakeFlagsName, makeFlags))
fdNum += 2
cmd.Env = append(cmd.Env, fmt.Sprintf("%s=%d", EnvJSToken, jsToken))
}
}
// 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)