mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/api: make api check directory per-user
Fixes #6353. R=golang-dev, bradfitz, alex.brainman CC=golang-dev https://golang.org/cl/13652043
This commit is contained in:
parent
b99fdb2a11
commit
b34ec90e19
1 changed files with 19 additions and 1 deletions
|
|
@ -19,6 +19,7 @@ import (
|
|||
"net/http"
|
||||
"os"
|
||||
"os/exec"
|
||||
"os/user"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
|
@ -99,8 +100,13 @@ func forceAPICheck() bool {
|
|||
func prepGoPath() string {
|
||||
const tempBase = "go.tools.TMP"
|
||||
|
||||
u, err := user.Current()
|
||||
if err != nil {
|
||||
log.Fatalf("Error getting current user: %v", err)
|
||||
}
|
||||
|
||||
// The GOPATH we'll return
|
||||
gopath := filepath.Join(os.TempDir(), "gopath-api", goToolsVersion)
|
||||
gopath := filepath.Join(os.TempDir(), "gopath-api-"+cleanUsername(u.Username), goToolsVersion)
|
||||
|
||||
// cloneDir is where we run "hg clone".
|
||||
cloneDir := filepath.Join(gopath, "src", "code.google.com", "p")
|
||||
|
|
@ -140,6 +146,18 @@ func prepGoPath() string {
|
|||
return gopath
|
||||
}
|
||||
|
||||
func cleanUsername(n string) string {
|
||||
b := make([]rune, len(n))
|
||||
for i, r := range n {
|
||||
if r == '\\' || r == '/' || r == ':' {
|
||||
b[i] = '_'
|
||||
} else {
|
||||
b[i] = r
|
||||
}
|
||||
}
|
||||
return string(b)
|
||||
}
|
||||
|
||||
func goToolsCheckoutGood(dir string) bool {
|
||||
if _, err := os.Stat(dir); err != nil {
|
||||
return false
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue