1
0
mirror of https://github.com/golang/go synced 2024-11-19 20:54:39 -07:00

cmd/go: reject relative values for GOPATH

Fixes #4062.

R=rsc, dave, r
CC=golang-dev, nicksaika
https://golang.org/cl/6488129
This commit is contained in:
Francisco Souza 2012-09-17 13:44:55 -07:00 committed by Rob Pike
parent 551e263823
commit 916ccbf165
2 changed files with 18 additions and 0 deletions

View File

@ -127,6 +127,13 @@ func main() {
// which is not what most people want when they do it. // which is not what most people want when they do it.
if gopath := os.Getenv("GOPATH"); gopath == runtime.GOROOT() { if gopath := os.Getenv("GOPATH"); gopath == runtime.GOROOT() {
fmt.Fprintf(os.Stderr, "warning: GOPATH set to GOROOT (%s) has no effect\n", gopath) fmt.Fprintf(os.Stderr, "warning: GOPATH set to GOROOT (%s) has no effect\n", gopath)
} else {
for _, p := range strings.Split(gopath, ":") {
if build.IsLocalImport(p) {
fmt.Fprintf(os.Stderr, "go: GOPATH entry is relative; must be absolute path: %q.\nRun 'go help gopath' for usage.\n", p)
os.Exit(2)
}
}
} }
for _, cmd := range commands { for _, cmd := range commands {

View File

@ -125,6 +125,17 @@ elif ! test -x testdata/bin1/helloworld; then
ok=false ok=false
fi fi
# Reject relative paths in GOPATH.
if GOPATH=. ./testgo build testdata/src/go-cmd-test/helloworld.go; then
echo 'GOPATH="." go build should have failed, did not'
ok=false
fi
if GOPATH=:$(pwd)/testdata:. ./testgo build go-cmd-test; then
echo 'GOPATH=":$(pwd)/testdata:." go build should have failed, did not'
ok=false
fi
if $ok; then if $ok; then
echo PASS echo PASS
else else