mirror of https://github.com/golang/go.git
cmd/go: Plan 9 compatible "env" output
Fixes the output of go env so that variables can be set more accurately when using Plan 9's rc shell. Specifically, GOPATH may have multiple components and the current representation is plain wrong. In practice, we probably ought to change os. Getenv to produce the right result, but that requires considerably more thought. LGTM=rsc R=golang-codereviews, gobot, rsc CC=golang-codereviews https://golang.org/cl/66600043
This commit is contained in:
parent
c687be423c
commit
ff15e5c00f
|
|
@ -91,7 +91,19 @@ func runEnv(cmd *Command, args []string) {
|
||||||
default:
|
default:
|
||||||
fmt.Printf("%s=\"%s\"\n", e.name, e.value)
|
fmt.Printf("%s=\"%s\"\n", e.name, e.value)
|
||||||
case "plan9":
|
case "plan9":
|
||||||
fmt.Printf("%s='%s'\n", e.name, strings.Replace(e.value, "'", "''", -1))
|
if strings.IndexByte(e.value, '\x00') < 0 {
|
||||||
|
fmt.Printf("%s='%s'\n", e.name, strings.Replace(e.value, "'", "''", -1))
|
||||||
|
} else {
|
||||||
|
v := strings.Split(e.value, "\x00")
|
||||||
|
fmt.Printf("%s=(", e.name)
|
||||||
|
for x, s := range v {
|
||||||
|
if x > 0 {
|
||||||
|
fmt.Printf(" ")
|
||||||
|
}
|
||||||
|
fmt.Printf("%s", s)
|
||||||
|
}
|
||||||
|
fmt.Printf(")\n")
|
||||||
|
}
|
||||||
case "windows":
|
case "windows":
|
||||||
fmt.Printf("set %s=%s\n", e.name, e.value)
|
fmt.Printf("set %s=%s\n", e.name, e.value)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue