authorgravatar for ybham6@gmail.comfifty-six <ybham6@gmail.com> 2022-01-19 16:09:48-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-02-02 21:24:40-07:00
logaa8112c84706b10dd4d1d6753e01189bf3482851
tree564742126508601f0984a4d56552e9ad62696f2a
parent3d52a322abf039d7e515ba18534af6a32e4191e6

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;