From 1504c9584e6b92a0ca3de7bc5e5dec62dd710b77 Mon Sep 17 00:00:00 2001 From: Tycho Andersen Date: Thu, 9 Mar 2017 10:27:26 -0800 Subject: [PATCH] better debugging output in more error cases Signed-off-by: Tycho Andersen --- main.go | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index 9ef5d9dfc..c9b630387 100644 --- a/main.go +++ b/main.go @@ -70,11 +70,38 @@ func dockerRunInput(input io.Reader, args ...string) ([]byte, error) { args = append([]string{"run", "--rm", "-i"}, args...) cmd := exec.Command(docker, args...) cmd.Stdin = input - out, err := cmd.Output() + + stderrPipe, err := cmd.StderrPipe() if err != nil { return []byte{}, err } - return out, nil + + stdoutPipe, err := cmd.StdoutPipe() + if err != nil { + return []byte{}, err + } + + err = cmd.Start() + if err != nil { + return []byte{}, err + } + + stdout, err := ioutil.ReadAll(stdoutPipe) + if err != nil { + return []byte{}, err + } + + stderr, err := ioutil.ReadAll(stderrPipe) + if err != nil { + return []byte{}, err + } + + err = cmd.Wait() + if err != nil { + return []byte{}, fmt.Errorf("%s: %s", err, stderr) + } + + return stdout, nil } func untarKernel(buf *bytes.Buffer, bzimageName, ktarName string) (*bytes.Buffer, *bytes.Buffer, error) {