paths_plan9.go 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. homeLibDir := filepath.Join(home, "lib")
  13. rootLibDir := "/lib"
  14. // Initialize standard directories.
  15. baseDirs.dataHome = pathutil.EnvPath(envDataHome, homeLibDir)
  16. baseDirs.data = pathutil.EnvPathList(envDataDirs, rootLibDir)
  17. baseDirs.configHome = pathutil.EnvPath(envConfigHome, homeLibDir)
  18. baseDirs.config = pathutil.EnvPathList(envConfigDirs, rootLibDir)
  19. baseDirs.stateHome = pathutil.EnvPath(envStateHome, filepath.Join(homeLibDir, "state"))
  20. baseDirs.cacheHome = pathutil.EnvPath(envCacheHome, filepath.Join(homeLibDir, "cache"))
  21. baseDirs.runtime = pathutil.EnvPath(envRuntimeDir, "/tmp")
  22. // Initialize non-standard directories.
  23. baseDirs.binHome = pathutil.EnvPath(envBinHome, filepath.Join(home, "bin"))
  24. baseDirs.applications = []string{
  25. filepath.Join(home, "bin"),
  26. "/bin",
  27. }
  28. baseDirs.fonts = []string{
  29. filepath.Join(homeLibDir, "font"),
  30. "/lib/font",
  31. }
  32. }
  33. func initUserDirs(home string) {
  34. UserDirs.Desktop = pathutil.EnvPath(userdirs.EnvDesktopDir, filepath.Join(home, "desktop"))
  35. UserDirs.Download = pathutil.EnvPath(userdirs.EnvDownloadDir, filepath.Join(home, "downloads"))
  36. UserDirs.Documents = pathutil.EnvPath(userdirs.EnvDocumentsDir, filepath.Join(home, "documents"))
  37. UserDirs.Music = pathutil.EnvPath(userdirs.EnvMusicDir, filepath.Join(home, "music"))
  38. UserDirs.Pictures = pathutil.EnvPath(userdirs.EnvPicturesDir, filepath.Join(home, "pictures"))
  39. UserDirs.Videos = pathutil.EnvPath(userdirs.EnvVideosDir, filepath.Join(home, "videos"))
  40. UserDirs.Templates = pathutil.EnvPath(userdirs.EnvTemplatesDir, filepath.Join(home, "templates"))
  41. UserDirs.PublicShare = pathutil.EnvPath(userdirs.EnvPublicShareDir, filepath.Join(home, "public"))
  42. }