A string path to the default resource base directory.
import std.algorithm.searching : endsWith; version(OSX) { immutable rbd = resourceBaseDirectory; assert(rbd.endsWith("Library/Application Support"), rbd); } else version(Posix) { import lu.string : beginsWith; import std.process : environment; environment["XDG_DATA_HOME"] = "/tmp"; string rbd = resourceBaseDirectory; assert((rbd == "/tmp"), rbd); environment.remove("XDG_DATA_HOME"); rbd = resourceBaseDirectory; assert(rbd.beginsWith("/home/") && rbd.endsWith("/.local/share")); } else version(Windows) { immutable rbd = resourceBaseDirectory; assert(rbd.endsWith("\\Local"), rbd); }
Divines the default resource base directory, depending on what platform we're currently running.
On non-macOS Posix it defaults to $XDG_DATA_HOME and falls back to $HOME/.local/share if no $XDG_DATA_HOME environment variable present.
On macOS it defaults to $HOME/Library/Application Support.
On Windows it defaults to %LOCALAPPDATA%.