summaryrefslogtreecommitdiff
path: root/misc/dashboard/builder/exec.go
diff options
context:
space:
mode:
Diffstat (limited to 'misc/dashboard/builder/exec.go')
-rw-r--r--misc/dashboard/builder/exec.go74
1 files changed, 0 insertions, 74 deletions
diff --git a/misc/dashboard/builder/exec.go b/misc/dashboard/builder/exec.go
deleted file mode 100644
index a042c5699..000000000
--- a/misc/dashboard/builder/exec.go
+++ /dev/null
@@ -1,74 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import (
- "bytes"
- "exec"
- "io"
- "log"
- "os"
- "strings"
-)
-
-// run is a simple wrapper for exec.Run/Close
-func run(envv []string, dir string, argv ...string) os.Error {
- if *verbose {
- log.Println("run", argv)
- }
- argv = useBash(argv)
- cmd := exec.Command(argv[0], argv[1:]...)
- cmd.Dir = dir
- cmd.Env = envv
- cmd.Stderr = os.Stderr
- return cmd.Run()
-}
-
-// runLog runs a process and returns the combined stdout/stderr,
-// 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.
-func runLog(envv []string, logfile, dir string, argv ...string) (string, int, os.Error) {
- if *verbose {
- log.Println("runLog", argv)
- }
- argv = useBash(argv)
-
- b := new(bytes.Buffer)
- var w io.Writer = b
- if logfile != "" {
- f, err := os.OpenFile(logfile, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0666)
- if err != nil {
- return "", 0, err
- }
- defer f.Close()
- w = io.MultiWriter(f, b)
- }
-
- cmd := exec.Command(argv[0], argv[1:]...)
- cmd.Dir = dir
- cmd.Env = envv
- cmd.Stdout = w
- cmd.Stderr = w
-
- err := cmd.Run()
- if err != nil {
- if ws, ok := err.(*os.Waitmsg); ok {
- return b.String(), ws.ExitStatus(), nil
- }
- }
- return b.String(), 0, nil
-}
-
-// useBash prefixes a list of args with 'bash' if the first argument
-// is a bash script.
-func useBash(argv []string) []string {
- // TODO(brainman): choose a more reliable heuristic here.
- if strings.HasSuffix(argv[0], ".bash") {
- argv = append([]string{"bash"}, argv...)
- }
- return argv
-}