fix stdout,stderr

pull/5530/head
Medya Gh 2019-10-21 10:59:33 -07:00
parent 74b7054b4a
commit 48cd8620f2
2 changed files with 26 additions and 2 deletions

View File

@ -42,8 +42,19 @@ func (*ExecRunner) RunCmd(cmd *exec.Cmd) (*RunResult, error) {
glog.Infof("(ExecRunner) Run: %v", rr.Command())
var outb, errb bytes.Buffer
cmd.Stdout, rr.Stdout = &outb, &outb
cmd.Stderr, rr.Stderr = &errb, &errb
if cmd.Stdout == nil {
cmd.Stdout, rr.Stdout = &outb, &outb
} else {
io.MultiWriter(rr.Stdout, &outb)
rr.Stdout = &outb
}
if cmd.Stderr == nil {
cmd.Stderr, rr.Stderr = &errb, &errb
} else {
io.MultiWriter(rr.Stderr, &errb)
rr.Stdout = &errb
}
start := time.Now()
err := cmd.Run()
elapsed := time.Since(start)

View File

@ -111,6 +111,19 @@ func (s *SSHRunner) RunCmd(cmd *exec.Cmd) (*RunResult, error) {
rr.Stderr = &errb.b
start := time.Now()
if cmd.Stdout == nil {
cmd.Stdout, rr.Stdout = &outb, &outb.b
} else {
io.MultiWriter(rr.Stdout, &outb)
rr.Stdout = &outb.b
}
if cmd.Stderr == nil {
cmd.Stderr, rr.Stderr = &errb, &errb.b
} else {
io.MultiWriter(rr.Stderr, &errb)
rr.Stdout = &errb.b
}
sess, err := s.c.NewSession()
if err != nil {
return rr, errors.Wrap(err, "NewSession")