diff --git a/examples/config/fail/gobblefile.yml b/examples/config/fail/gobblefile.yml index 248ed41..2e6efcc 100644 --- a/examples/config/fail/gobblefile.yml +++ b/examples/config/fail/gobblefile.yml @@ -19,4 +19,4 @@ plays: tasks: - name: Fail on purpose command: - cmd: echo "Simulated error message" >&2 && exit 1 + cmd: echo "Simulated stdout message" >&1 && echo "Simulated stderr message" >&2 && exit 1 diff --git a/pkg/utils/exec_utils/exec_utils.go b/pkg/utils/exec_utils/exec_utils.go index 4ea9696..04680e6 100644 --- a/pkg/utils/exec_utils/exec_utils.go +++ b/pkg/utils/exec_utils/exec_utils.go @@ -12,16 +12,19 @@ import ( ) func RawExec(password string, cmd string, args ...string) error { - var stderrBuf bytes.Buffer + var stderrBuf, stdoutBuf bytes.Buffer c := exec.Command(cmd, args...) if password != "" { c.Stdin = bytes.NewBufferString(password + "\n") } c.Stderr = &stderrBuf + c.Stdout = &stdoutBuf err := c.Run() - - return fmt.Errorf("command failed: %v \nerror: %s", err, stderrBuf.String()) + if err != nil { + return fmt.Errorf("command failed: %v \nmessage: %serror: %s", err, stdoutBuf.String(), stderrBuf.String()) + } + return nil } func RawExecStdout(cmd string, args ...string) error {