Skip to content

Commit a2d12ae

Browse files
Merge pull request #703 from ibuildthecloud/main
bug: don't capture stderr for cred and provider tools
2 parents 5c3ce90 + 632c2cf commit a2d12ae

File tree

1 file changed

+18
-11
lines changed

1 file changed

+18
-11
lines changed

pkg/engine/cmd.go

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -134,21 +134,28 @@ func (e *Engine) runCommand(ctx Context, tool types.Tool, input string, toolCate
134134
},
135135
}
136136

137-
result := &bytes.Buffer{}
138-
all := io.MultiWriter(result, &outputWriter{
139-
id: id,
140-
progress: e.Progress,
141-
})
142-
143-
cmd.Stdout = all
144-
cmd.Stderr = all
145-
if log.IsDebug() {
146-
cmd.Stderr = io.MultiWriter(all, os.Stderr)
137+
var (
138+
stdout = &bytes.Buffer{}
139+
stdoutAndErr = &bytes.Buffer{}
140+
progressOut = &outputWriter{
141+
id: id,
142+
progress: e.Progress,
143+
}
144+
result *bytes.Buffer
145+
)
146+
147+
cmd.Stdout = io.MultiWriter(stdout, stdoutAndErr, progressOut)
148+
if toolCategory == NoCategory || toolCategory == ContextToolCategory {
149+
cmd.Stderr = io.MultiWriter(stdoutAndErr, progressOut)
150+
result = stdoutAndErr
151+
} else {
152+
cmd.Stderr = io.MultiWriter(stdoutAndErr, progressOut, os.Stderr)
153+
result = stdout
147154
}
148155

149156
if err := cmd.Run(); err != nil {
150157
if toolCategory == NoCategory {
151-
return fmt.Sprintf("ERROR: got (%v) while running tool, OUTPUT: %s", err, result), nil
158+
return fmt.Sprintf("ERROR: got (%v) while running tool, OUTPUT: %s", err, stdoutAndErr), nil
152159
}
153160
log.Errorf("failed to run tool [%s] cmd %v: %v", tool.Parameters.Name, cmd.Args, err)
154161
return "", fmt.Errorf("ERROR: %s: %w", result, err)

0 commit comments

Comments
 (0)