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  }