github.com/qiniu/go-sdk/v7@v7.27.0/internal/configfile/go1.11.go (about) 1 //go:build !1.12 2 // +build !1.12 3 4 package configfile 5 6 import ( 7 "errors" 8 "os" 9 "runtime" 10 ) 11 12 func userHomeDir() (string, error) { 13 env, enverr := "HOME", "$HOME" 14 switch runtime.GOOS { 15 case "windows": 16 env, enverr = "USERPROFILE", "%userprofile%" 17 case "plan9": 18 env, enverr = "home", "$home" 19 } 20 if v := os.Getenv(env); v != "" { 21 return v, nil 22 } 23 // On some geese the home directory is not always defined. 24 switch runtime.GOOS { 25 case "android": 26 return "/sdcard", nil 27 case "ios": 28 return "/", nil 29 } 30 return "", errors.New(enverr + " is not defined") 31 }