-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdirs_linux.go
70 lines (54 loc) · 1.58 KB
/
dirs_linux.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
//go:build linux
// +build linux
package appdirs
import (
"os"
"path"
)
func GetEnvVar(variable, def string) string {
v, exists := os.LookupEnv(variable)
if exists == false {
return def
}
return v
}
func UserAppDir(appName, version string) string {
home, _ := os.UserHomeDir()
root := path.Join(home, ".local", "bin")
return MakeAppDir(root, appName, version)
}
func UserDataDir(appName, version string) string {
home, _ := os.UserHomeDir()
root := GetEnvVar("XDG_DATA_HOME", path.Join(home, ".local", "share"))
return MakeAppDir(root, appName, version)
}
func UserCacheDir(appName, version string) string {
home, _ := os.UserHomeDir()
root := GetEnvVar("XDG_CACHE_DIR", path.Join(home, ".cache"))
return MakeAppDir(root, appName, version)
}
func UserConfigDir(appName, version string) string {
home, _ := os.UserHomeDir()
root := GetEnvVar("XDG_CONFIG_HOME", path.Join(home, ".config"))
return MakeAppDir(root, appName, version)
}
func UserLogDir(appName, version string) string {
root := UserCacheDir(appName, version)
return path.Join(root, "log")
}
func SiteAppDir(appName, version string) string {
root := path.Join("/usr", "bin")
return MakeAppDir(root, appName, version)
}
func SiteDataDir(appName, version string) string {
root := path.Join("/usr", "local", "share")
return MakeAppDir(root, appName, version)
}
func SiteConfigDir(appName, version string) string {
root := path.Join("/etc", "xdg")
return MakeAppDir(root, appName, version)
}
func SiteLogDir(appName, version string) string {
root := path.Join("/var", "log")
return MakeAppDir(root, appName, version)
}