authorgravatar for ybham6@gmail.comfifty-six <ybham6@gmail.com> 2022-01-19 16:09:48-05:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-01-24 17:33:38+02:00
logda8d4d922518300a8e041f59cf994f1f83ce1f48
tree6eb11e4301862ee0dbdf12cb3526a635ccea8fe4
parent1f10cf4edf2b645e63dedc42f5d7475914bf2311

std/fs: Support `XDG_DATA_HOME`

This is generally used for user-specific data on linux, with the default being ~/.local/share

1 files changed, 4 insertions(+), 0 deletions(-)

lib/std/fs/get_app_data_dir.zig+4
...@@ -45,6 +45,10 @@ pub fn getAppDataDir(allocator: mem.Allocator, appname: []const u8) GetAppDataDi...@@ -45,6 +45,10 @@ pub fn getAppDataDir(allocator: mem.Allocator, appname: []const u8) GetAppDataDi
45 return fs.path.join(allocator, &[_][]const u8{ home_dir, "Library", "Application Support", appname });45 return fs.path.join(allocator, &[_][]const u8{ home_dir, "Library", "Application Support", appname });
46 },46 },
47 .linux, .freebsd, .netbsd, .dragonfly, .openbsd, .solaris => {47 .linux, .freebsd, .netbsd, .dragonfly, .openbsd, .solaris => {
48 if (os.getenv("XDG_DATA_HOME")) |xdg| {
49 return fs.path.join(allocator, &[_][]const u8{ xdg, appname });
50 }
51
48 const home_dir = os.getenv("HOME") orelse {52 const home_dir = os.getenv("HOME") orelse {
49 // TODO look in /etc/passwd53 // TODO look in /etc/passwd
50 return error.AppDataDirUnavailable;54 return error.AppDataDirUnavailable;