From 7128d822cb82beba890aad4dd39e51270598cf0b Mon Sep 17 00:00:00 2001 From: Jesse Duffield Date: Sun, 27 Mar 2022 14:28:30 +1100 Subject: [PATCH] show stdout in error message if stderr is blank --- pkg/commands/oscommands/cmd_obj_runner.go | 11 +++++++++-- 1 file 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