paths_plan9.go raw
1 package xdg
2
3 import (
4 "path/filepath"
5
6 "github.com/adrg/xdg/internal/pathutil"
7 "github.com/adrg/xdg/internal/userdirs"
8 )
9
10 func initDirs(home string) {
11 initBaseDirs(home)
12 initUserDirs(home)
13 }
14
15 func initBaseDirs(home string) {
16 homeLibDir := filepath.Join(home, "lib")
17 rootLibDir := "/lib"
18
19 // Initialize standard directories.
20 baseDirs.dataHome = pathutil.EnvPath(envDataHome, homeLibDir)
21 baseDirs.data = pathutil.EnvPathList(envDataDirs, rootLibDir)
22 baseDirs.configHome = pathutil.EnvPath(envConfigHome, homeLibDir)
23 baseDirs.config = pathutil.EnvPathList(envConfigDirs, rootLibDir)
24 baseDirs.stateHome = pathutil.EnvPath(envStateHome, filepath.Join(homeLibDir, "state"))
25 baseDirs.cacheHome = pathutil.EnvPath(envCacheHome, filepath.Join(homeLibDir, "cache"))
26 baseDirs.runtime = pathutil.EnvPath(envRuntimeDir, "/tmp")
27
28 // Initialize non-standard directories.
29 baseDirs.binHome = pathutil.EnvPath(envBinHome, filepath.Join(home, "bin"))
30
31 baseDirs.applications = []string{
32 filepath.Join(home, "bin"),
33 "/bin",
34 }
35
36 baseDirs.fonts = []string{
37 filepath.Join(homeLibDir, "font"),
38 "/lib/font",
39 }
40 }
41
42 func initUserDirs(home string) {
43 UserDirs.Desktop = pathutil.EnvPath(userdirs.EnvDesktopDir, filepath.Join(home, "desktop"))
44 UserDirs.Download = pathutil.EnvPath(userdirs.EnvDownloadDir, filepath.Join(home, "downloads"))
45 UserDirs.Documents = pathutil.EnvPath(userdirs.EnvDocumentsDir, filepath.Join(home, "documents"))
46 UserDirs.Music = pathutil.EnvPath(userdirs.EnvMusicDir, filepath.Join(home, "music"))
47 UserDirs.Pictures = pathutil.EnvPath(userdirs.EnvPicturesDir, filepath.Join(home, "pictures"))
48 UserDirs.Videos = pathutil.EnvPath(userdirs.EnvVideosDir, filepath.Join(home, "videos"))
49 UserDirs.Templates = pathutil.EnvPath(userdirs.EnvTemplatesDir, filepath.Join(home, "templates"))
50 UserDirs.PublicShare = pathutil.EnvPath(userdirs.EnvPublicShareDir, filepath.Join(home, "public"))
51 }
52