github.com/qiniu/x@v1.11.9/config/getdir.go (about) 1 package config 2 3 import ( 4 "errors" 5 "os" 6 ) 7 8 var homeEnvNames = [][]string{ 9 {"HOME"}, 10 {"HOMEDRIVE", "HOMEPATH"}, 11 } 12 13 var ( 14 ErrHomeNotFound = errors.New("$HOME not found") 15 ) 16 17 func getEnv(name []string) (v string) { 18 19 if len(name) == 1 { 20 return os.Getenv(name[0]) 21 } 22 for _, k := range name { 23 v += os.Getenv(k) 24 } 25 return 26 } 27 28 func GetDir(app string) (dir string, err error) { 29 30 for _, name := range homeEnvNames { 31 home := getEnv(name) 32 if home == "" { 33 continue 34 } 35 dir = home + "/." + app 36 err = os.MkdirAll(dir, 0777) 37 return 38 } 39 return "", ErrHomeNotFound 40 }