123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package utils
- import (
- "os"
- "path/filepath"
- "runtime"
- )
- //HomeDir return user home directory
- func HomeDir() string {
- if runtime.GOOS == "windows" {
- return os.Getenv("HOMEDRIVE") + os.Getenv("HOMEPATH")
- }
- if h := os.Getenv("HOME"); h != "" {
- return h
- }
- return "/"
- }
- //HiddenFilePrefix get hidden file prefix
- func HiddenFilePrefix() string {
- switch runtime.GOOS {
- case "windows":
- return "~"
- default:
- return "."
- }
- }
- //CacheDir return user cache directory
- func CacheDir() string {
- switch runtime.GOOS {
- case "darwin":
- return filepath.Join(HomeDir(), "Library", "Caches")
- case "windows":
- for _, ev := range []string{"APPDATA", "CSIDL_APPDATA", "TEMP", "TMP"} {
- if v := os.Getenv(ev); v != "" {
- return v
- }
- }
- // Worst case:
- return HomeDir()
- }
- if xdg := os.Getenv("XDG_CACHE_HOME"); xdg != "" {
- return xdg
- }
- return filepath.Join(HomeDir(), ".cache")
- }
|