From: Brad Fitzpatrick Date: Wed, 22 Feb 2012 19:48:41 +0000 (-0800) Subject: builder: update for os.Wait changes. X-Git-Tag: weekly.2012-02-22~16 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=0427c583a5877223447ec73b740b97fc39b12894;p=gostls13.git builder: update for os.Wait changes. This compiles again. R=golang-dev, minux.ma, rsc CC=golang-dev https://golang.org/cl/5687078 --- diff --git a/misc/dashboard/builder/exec.go b/misc/dashboard/builder/exec.go index a500d234b9..802d5f079f 100644 --- a/misc/dashboard/builder/exec.go +++ b/misc/dashboard/builder/exec.go @@ -28,7 +28,7 @@ func run(envv []string, dir string, argv ...string) error { // as well as writing it to logfile (if specified). It returns // process combined stdout and stderr output, exit status and error. // The error returned is nil, if process is started successfully, -// even if exit status is not 0. +// even if exit status is not successful. func runLog(envv []string, logfile, dir string, argv ...string) (string, int, error) { if *verbose { log.Println("runLog", argv) @@ -51,11 +51,13 @@ func runLog(envv []string, logfile, dir string, argv ...string) (string, int, er cmd.Stdout = w cmd.Stderr = w - err := cmd.Run() - if err != nil { - if ws, ok := err.(*exec.ExitError); ok { - return b.String(), ws.ExitStatus(), nil - } + startErr := cmd.Start() + if startErr != nil { + return "", 1, startErr + } + exitStatus := 0 + if err := cmd.Wait(); err != nil { + exitStatus = 1 // TODO(bradfitz): this is fake. no callers care, so just return a bool instead. } - return b.String(), 0, err + return b.String(), exitStatus, nil }