]> Cypherpunks repositories - gostls13.git/commitdiff
builder: update for os.Wait changes.
authorBrad Fitzpatrick <bradfitz@golang.org>
Wed, 22 Feb 2012 19:48:41 +0000 (11:48 -0800)
committerBrad Fitzpatrick <bradfitz@golang.org>
Wed, 22 Feb 2012 19:48:41 +0000 (11:48 -0800)
This compiles again.

R=golang-dev, minux.ma, rsc
CC=golang-dev
https://golang.org/cl/5687078

misc/dashboard/builder/exec.go

index a500d234b9023d0a3e3ea62295f385691bb2ec24..802d5f079f6a8be6a961a6638731b0b298b69fc6 100644 (file)
@@ -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
 }