mirror of
https://github.com/kevin-DL/revel-cmd.git
synced 2026-01-11 18:54:31 +00:00
35 lines
737 B
Go
35 lines
737 B
Go
package utils
|
|
|
|
import (
|
|
"go/build"
|
|
"os"
|
|
"os/exec"
|
|
"strings"
|
|
)
|
|
|
|
// Initialize the command based on the GO environment
|
|
func CmdInit(c *exec.Cmd, basePath string) {
|
|
c.Dir = basePath
|
|
// Go 1.8 fails if we do not include the GOROOT
|
|
c.Env = []string{"GOPATH=" + build.Default.GOPATH, "PATH=" + GetEnv("PATH"), "GOROOT="+ GetEnv("GOROOT")}
|
|
// Fetch the rest of the env variables
|
|
for _, e := range os.Environ() {
|
|
pair := strings.Split(e, "=")
|
|
if pair[0]=="GOPATH" {
|
|
continue
|
|
}
|
|
c.Env = append(c.Env,e)
|
|
}
|
|
}
|
|
|
|
// Returns an environment variable
|
|
func GetEnv(name string) string {
|
|
for _, v := range os.Environ() {
|
|
split := strings.Split(v, "=")
|
|
if split[0] == name {
|
|
return strings.Join(split[1:], "")
|
|
}
|
|
}
|
|
return ""
|
|
}
|