paths_darwin.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 homeAppSupport := filepath.Join(home, "Library", "Application Support")
17 rootAppSupport := "/Library/Application Support"
18
19 // Initialize standard directories.
20 baseDirs.dataHome = pathutil.EnvPath(envDataHome, homeAppSupport)
21 baseDirs.data = pathutil.EnvPathList(envDataDirs,
22 rootAppSupport,
23 filepath.Join(home, ".local", "share"),
24 )
25 baseDirs.configHome = pathutil.EnvPath(envConfigHome, homeAppSupport)
26 baseDirs.config = pathutil.EnvPathList(envConfigDirs,
27 filepath.Join(home, "Library", "Preferences"),
28 rootAppSupport,
29 "/Library/Preferences",
30 filepath.Join(home, ".config"),
31 )
32 baseDirs.stateHome = pathutil.EnvPath(envStateHome, homeAppSupport)
33 baseDirs.cacheHome = pathutil.EnvPath(envCacheHome, filepath.Join(home, "Library", "Caches"))
34 baseDirs.runtime = pathutil.EnvPath(envRuntimeDir, homeAppSupport)
35
36 // Initialize non-standard directories.
37 baseDirs.binHome = pathutil.EnvPath(envBinHome, filepath.Join(home, ".local", "bin"))
38
39 baseDirs.applications = []string{
40 "/Applications",
41 }
42
43 baseDirs.fonts = []string{
44 filepath.Join(home, "Library/Fonts"),
45 "/Library/Fonts",
46 "/System/Library/Fonts",
47 "/Network/Library/Fonts",
48 }
49 }
50
51 func initUserDirs(home string) {
52 UserDirs.Desktop = pathutil.EnvPath(userdirs.EnvDesktopDir, filepath.Join(home, "Desktop"))
53 UserDirs.Download = pathutil.EnvPath(userdirs.EnvDownloadDir, filepath.Join(home, "Downloads"))
54 UserDirs.Documents = pathutil.EnvPath(userdirs.EnvDocumentsDir, filepath.Join(home, "Documents"))
55 UserDirs.Music = pathutil.EnvPath(userdirs.EnvMusicDir, filepath.Join(home, "Music"))
56 UserDirs.Pictures = pathutil.EnvPath(userdirs.EnvPicturesDir, filepath.Join(home, "Pictures"))
57 UserDirs.Videos = pathutil.EnvPath(userdirs.EnvVideosDir, filepath.Join(home, "Movies"))
58 UserDirs.Templates = pathutil.EnvPath(userdirs.EnvTemplatesDir, filepath.Join(home, "Templates"))
59 UserDirs.PublicShare = pathutil.EnvPath(userdirs.EnvPublicShareDir, filepath.Join(home, "Public"))
60 }
61