paths_darwin.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package xdg
  2. import (
  3. "path/filepath"
  4. "github.com/adrg/xdg/internal/pathutil"
  5. "github.com/adrg/xdg/internal/userdirs"
  6. )
  7. func initDirs(home string) {
  8. initBaseDirs(home)
  9. initUserDirs(home)
  10. }
  11. func initBaseDirs(home string) {
  12. homeAppSupport := filepath.Join(home, "Library", "Application Support")
  13. rootAppSupport := "/Library/Application Support"
  14. // Initialize standard directories.
  15. baseDirs.dataHome = pathutil.EnvPath(envDataHome, homeAppSupport)
  16. baseDirs.data = pathutil.EnvPathList(envDataDirs,
  17. rootAppSupport,
  18. filepath.Join(home, ".local", "share"),
  19. )
  20. baseDirs.configHome = pathutil.EnvPath(envConfigHome, homeAppSupport)
  21. baseDirs.config = pathutil.EnvPathList(envConfigDirs,
  22. filepath.Join(home, "Library", "Preferences"),
  23. rootAppSupport,
  24. "/Library/Preferences",
  25. filepath.Join(home, ".config"),
  26. )
  27. baseDirs.stateHome = pathutil.EnvPath(envStateHome, homeAppSupport)
  28. baseDirs.cacheHome = pathutil.EnvPath(envCacheHome, filepath.Join(home, "Library", "Caches"))
  29. baseDirs.runtime = pathutil.EnvPath(envRuntimeDir, homeAppSupport)
  30. // Initialize non-standard directories.
  31. baseDirs.binHome = pathutil.EnvPath(envBinHome, filepath.Join(home, ".local", "bin"))
  32. baseDirs.applications = []string{
  33. "/Applications",
  34. }
  35. baseDirs.fonts = []string{
  36. filepath.Join(home, "Library/Fonts"),
  37. "/Library/Fonts",
  38. "/System/Library/Fonts",
  39. "/Network/Library/Fonts",
  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, "Movies"))
  49. UserDirs.Templates = pathutil.EnvPath(userdirs.EnvTemplatesDir, filepath.Join(home, "Templates"))
  50. UserDirs.PublicShare = pathutil.EnvPath(userdirs.EnvPublicShareDir, filepath.Join(home, "Public"))
  51. }