]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/api: make it work even when cgo is disabled
authorShenghou Ma <minux.ma@gmail.com>
Mon, 14 Oct 2013 04:18:46 +0000 (00:18 -0400)
committerShenghou Ma <minux.ma@gmail.com>
Mon, 14 Oct 2013 04:18:46 +0000 (00:18 -0400)
make use of $USER or %USERNAME% to determine the current user.
Fixes #6578.

R=golang-dev, bradfitz, alex.brainman
CC=golang-dev
https://golang.org/cl/14649043

src/cmd/api/run.go

index f7c590bbe1d2b5bb0b63390ec8e6cf93fa15a6f6..ffa2d61bf315d82a02da949b61977f8df93e6c65 100644 (file)
@@ -93,13 +93,21 @@ func file(s ...string) string {
 func prepGoPath() string {
        const tempBase = "go.tools.TMP"
 
+       username := ""
        u, err := user.Current()
-       if err != nil {
-               log.Fatalf("Error getting current user: %v", err)
+       if err == nil {
+               username = u.Username
+       } else {
+               // Only need to handle Unix here, as Windows's os/user uses
+               // native syscall and should work fine without cgo.
+               username = os.Getenv("USER")
+               if username == "" {
+                       log.Fatalf("Error getting current user: %v", err)
+               }
        }
 
        // The GOPATH we'll return
-       gopath := filepath.Join(os.TempDir(), "gopath-api-"+cleanUsername(u.Username), goToolsVersion)
+       gopath := filepath.Join(os.TempDir(), "gopath-api-"+cleanUsername(username), goToolsVersion)
 
        // cloneDir is where we run "hg clone".
        cloneDir := filepath.Join(gopath, "src", "code.google.com", "p")