diff options
-rw-r--r-- | pkg/commands/oscommands/cmd_obj_runner.go | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/pkg/commands/oscommands/cmd_obj_runner.go b/pkg/commands/oscommands/cmd_obj_runner.go index 92e024758..12edd38db 100644 --- a/pkg/commands/oscommands/cmd_obj_runner.go +++ b/pkg/commands/oscommands/cmd_obj_runner.go @@ -226,6 +226,9 @@ func (self *cmdObjRunner) runAndStreamAux( return err } + var stdout bytes.Buffer + handler.stdoutPipe = io.TeeReader(handler.stdoutPipe, &stdout) + defer func() { if closeErr := handler.close(); closeErr != nil { self.log.Error(closeErr) @@ -237,10 +240,14 @@ func (self *cmdObjRunner) runAndStreamAux( err = cmd.Wait() if err != nil { errStr := stderr.String() - if cmdObj.ShouldIgnoreEmptyError() && errStr == "" { + if errStr != "" { + return errors.New(errStr) + } + + if cmdObj.ShouldIgnoreEmptyError() { return nil } - return errors.New(stderr.String()) + return errors.New(stdout.String()) } return nil |