From: Andrew Gerrand Date: Mon, 30 May 2011 10:19:56 +0000 (+1000) Subject: gobuilder: remove some windows-specificity X-Git-Tag: weekly.2011-06-02~62 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=55f8fd26841c2e9ef63759b62b7cd0bafa93b5f1;p=gostls13.git gobuilder: remove some windows-specificity R=alex.brainman CC=golang-dev https://golang.org/cl/4528109 --- diff --git a/misc/dashboard/builder/exec.go b/misc/dashboard/builder/exec.go index 0c16dff8a0..a7ef933084 100644 --- a/misc/dashboard/builder/exec.go +++ b/misc/dashboard/builder/exec.go @@ -10,7 +10,6 @@ import ( "io" "log" "os" - "runtime" "strings" ) @@ -19,10 +18,7 @@ func run(envv []string, dir string, argv ...string) os.Error { if *verbose { log.Println("run", argv) } - if runtime.GOOS == "windows" && isBash(argv[0]) { - // shell script cannot be executed directly on Windows. - argv = append([]string{"bash", "-c"}, argv...) - } + argv = useBash(argv) bin, err := lookPath(argv[0]) if err != nil { return err @@ -41,10 +37,7 @@ func runLog(envv []string, logfile, dir string, argv ...string) (output string, if *verbose { log.Println("runLog", argv) } - if runtime.GOOS == "windows" && isBash(argv[0]) { - // shell script cannot be executed directly on Windows. - argv = append([]string{"bash", "-c"}, argv...) - } + argv = useBash(argv) bin, err := lookPath(argv[0]) if err != nil { return @@ -84,8 +77,12 @@ func lookPath(cmd string) (string, os.Error) { return exec.LookPath(cmd) } -// isBash determines if name refers to a shell script. -func isBash(name string) bool { - // TODO(brainman): perhaps it is too simple and needs better check. - return strings.HasSuffix(name, ".bash") +// 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 }