mirror of
https://github.com/golang/go.git
synced 2025-05-05 15:43:04 +00:00
os/user: use os.UserHomeDir for user.HomeDir
Using os.UserHomeDir for user.HomeDir helps us deduplicate the logic and keep the behavior consistent. Also make os.UserHomeDir return "/sdcard" in android. See: https://go-review.googlesource.com/c/go/+/37960/1/src/os/user/lookup_stubs.go#48 Fixes #31070 Change-Id: I521bad050bc5761ecc5c0085501374d2cf8e6897 Reviewed-on: https://go-review.googlesource.com/c/go/+/169540 Run-TryBot: Daniel Martí <mvdan@mvdan.cc> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Daniel Martí <mvdan@mvdan.cc> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
2bd767b102
commit
c1e60b6e33
@ -468,8 +468,10 @@ func UserHomeDir() (string, error) {
|
||||
}
|
||||
// On some geese the home directory is not always defined.
|
||||
switch runtime.GOOS {
|
||||
case "nacl", "android":
|
||||
case "nacl":
|
||||
return "/", nil
|
||||
case "android":
|
||||
return "/sdcard", nil
|
||||
case "darwin":
|
||||
if runtime.GOARCH == "arm" || runtime.GOARCH == "arm64" {
|
||||
return "/", nil
|
||||
|
@ -26,12 +26,14 @@ func current() (*User, error) {
|
||||
if err == nil {
|
||||
return u, nil
|
||||
}
|
||||
|
||||
homeDir, _ := os.UserHomeDir()
|
||||
u = &User{
|
||||
Uid: uid,
|
||||
Gid: currentGID(),
|
||||
Username: os.Getenv("USER"),
|
||||
Name: "", // ignored
|
||||
HomeDir: os.Getenv("HOME"),
|
||||
HomeDir: homeDir,
|
||||
}
|
||||
// On NaCL and Android, return a dummy user instead of failing.
|
||||
switch runtime.GOOS {
|
||||
@ -42,9 +44,6 @@ func current() (*User, error) {
|
||||
if u.Username == "" {
|
||||
u.Username = "nacl"
|
||||
}
|
||||
if u.HomeDir == "" {
|
||||
u.HomeDir = "/"
|
||||
}
|
||||
case "android":
|
||||
if u.Uid == "" {
|
||||
u.Uid = "1"
|
||||
@ -52,9 +51,6 @@ func current() (*User, error) {
|
||||
if u.Username == "" {
|
||||
u.Username = "android"
|
||||
}
|
||||
if u.HomeDir == "" {
|
||||
u.HomeDir = "/sdcard"
|
||||
}
|
||||
}
|
||||
// cgo isn't available, but if we found the minimum information
|
||||
// without it, use it:
|
||||
|
Loading…
x
Reference in New Issue
Block a user