in pkg/commandhandler/cmd_linux.go [43:66]
func execCommonWithEnvVariables(workdir string, stdout, stderr io.WriteCloser, execMethodToCall func(*exec.Cmd) error, params *map[string]string, args ...string) (int, error) {
args = append([]string{"-c"}, args...)
c := exec.Command("/bin/sh", args...)
c.Dir = workdir
c.Stdout = stdout
c.Stderr = stderr
c.Env = os.Environ()
addEnvVariables(params, c)
err := execMethodToCall(c)
exitErr, ok := err.(*exec.ExitError)
if ok {
if status, ok := exitErr.Sys().(syscall.WaitStatus); ok {
code := status.ExitStatus()
return code, fmt.Errorf("command terminated with exit status=%d", code)
}
}
if err != nil {
return 1, errors.Wrapf(err, "failed to execute command")
}
return 0, nil
}