]> Cypherpunks repositories - gostls13.git/commitdiff
go/build: handle and warn of duplicate GOPATH entries
authorAndrew Gerrand <adg@golang.org>
Mon, 9 Jan 2012 03:24:05 +0000 (14:24 +1100)
committerAndrew Gerrand <adg@golang.org>
Mon, 9 Jan 2012 03:24:05 +0000 (14:24 +1100)
R=golang-dev, alex.brainman
CC=golang-dev
https://golang.org/cl/5519050

src/pkg/go/build/path.go

index 7a281800c2828afe57bdbe3cde1286b49f804d30..bb9b8ca642a123f8a63b2c4d19ada8760d43ddf1 100644 (file)
@@ -157,6 +157,7 @@ func init() {
                Path = []*Tree{t}
        }
 
+Loop:
        for _, p := range filepath.SplitList(os.Getenv("GOPATH")) {
                if p == "" {
                        continue
@@ -166,6 +167,21 @@ func init() {
                        log.Printf("invalid GOPATH %q: %v", p, err)
                        continue
                }
+
+               // Check for dupes.
+               // TODO(alexbrainman): make this correct under windows (case insensitive).
+               for _, t2 := range Path {
+                       if t2.Path != t.Path {
+                               continue
+                       }
+                       if t2.Goroot {
+                               log.Printf("GOPATH is the same as GOROOT: %q", t.Path)
+                       } else {
+                               log.Printf("duplicate GOPATH entry: %q", t.Path)
+                       }
+                       continue Loop
+               }
+
                Path = append(Path, t)
                gcImportArgs = append(gcImportArgs, "-I", t.PkgDir())
                ldImportArgs = append(ldImportArgs, "-L", t.PkgDir())