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  }