2
0
mirror of synced 2025-02-23 06:48:15 +00:00

cmd/gomobile: inherit env vars when running build subprocesses.

Change-Id: I687ce7f0730d4081d0c53d1eb2aa8bb99ff0f957
Reviewed-on: https://go-review.googlesource.com/6510
Reviewed-by: David Crawshaw <crawshaw@golang.org>
This commit is contained in:
Hyang-Ah Hana Kim 2015-03-02 15:27:13 -05:00
parent 614540a6db
commit 388f1b8302
2 changed files with 26 additions and 0 deletions

View File

@ -362,6 +362,7 @@ func gobuild(src, libPath string) error {
printcmd("%s", strings.Join(gocmd.Env, " ")+" "+strings.Join(gocmd.Args, " "))
}
if !buildN {
gocmd.Env = environ(gocmd.Env)
if err := gocmd.Run(); err != nil {
return err
}
@ -414,3 +415,27 @@ cSL5bhq0N5XHK77sscxW9vXjG0LJMXmFZPp9F6aV6ejkMIXyJ/Yz/EqeaJFwilTq
Mc6xR47qkdzu0dQ1aPm4XD7AWDtIvPo/GG2DKOucLBbQc2cOWtKS
-----END RSA PRIVATE KEY-----
`
// environ merges os.Environ and the given "key=value" pairs.
func environ(kv []string) []string {
environ := map[string]string{}
for _, ev := range os.Environ() {
elem := strings.SplitN(ev, "=", 2)
if len(elem) != 2 {
panic(fmt.Sprintf("malformed env var %q from os.Environ", ev))
}
environ[elem[0]] = elem[1]
}
for _, ev := range kv {
elem := strings.SplitN(ev, "=", 2)
if len(elem) != 2 {
panic(fmt.Sprintf("malformed env var %q from input", ev))
}
environ[elem[0]] = elem[1]
}
ret := make([]string, 0, len(environ))
for k, v := range environ {
ret = append(ret, k+"="+v)
}
return ret
}

View File

@ -187,6 +187,7 @@ func runInit(cmd *command) error {
printcmd("%s", strings.Join(make.Env, " ")+" "+strings.Join(make.Args, " "))
}
if !buildN {
make.Env = environ(make.Env)
if err := make.Run(); err != nil {
return err
}