Commit 89ebc28b authored by Shenghou Ma's avatar Shenghou Ma

cmd/api: make it work even when cgo is disabled

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
parent 26f43a08
...@@ -93,13 +93,21 @@ func file(s ...string) string { ...@@ -93,13 +93,21 @@ func file(s ...string) string {
func prepGoPath() string { func prepGoPath() string {
const tempBase = "go.tools.TMP" const tempBase = "go.tools.TMP"
username := ""
u, err := user.Current() u, err := user.Current()
if err != nil { if err == nil {
log.Fatalf("Error getting current user: %v", err) 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 // 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 is where we run "hg clone".
cloneDir := filepath.Join(gopath, "src", "code.google.com", "p") cloneDir := filepath.Join(gopath, "src", "code.google.com", "p")
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment