in openwhisk/executor.go [49:77]
func NewExecutor(logout *os.File, logerr *os.File, command string, env map[string]string, args ...string) (proc *Executor) {
cmd := exec.Command(command, args...)
cmd.Stdout = logout
cmd.Stderr = logerr
cmd.Env = []string{}
for k, v := range env {
cmd.Env = append(cmd.Env, k+"="+v)
}
Debug("env: %v", cmd.Env)
if Debugging {
cmd.Env = append(cmd.Env, "OW_DEBUG=/tmp/action.log")
}
input, err := cmd.StdinPipe()
if err != nil {
return nil
}
pipeOut, pipeIn, err := os.Pipe()
if err != nil {
return nil
}
cmd.ExtraFiles = []*os.File{pipeIn}
output := bufio.NewReader(pipeOut)
return &Executor{
cmd,
input,
output,
make(chan bool),
}
}