From aa8112c84706b10dd4d1d6753e01189bf3482851 Mon Sep 17 00:00:00 2001 From: fifty-six Date: Wed, 19 Jan 2022 16:09:48 -0500 Subject: [PATCH] std/fs: Support `XDG_DATA_HOME` This is generally used for user-specific data on linux, with the default being ~/.local/share --- lib/std/fs/get_app_data_dir.zig | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/std/fs/get_app_data_dir.zig b/lib/std/fs/get_app_data_dir.zig index a60e9e5c59..4f7ba9af62 100644 --- a/lib/std/fs/get_app_data_dir.zig +++ b/lib/std/fs/get_app_data_dir.zig @@ -45,6 +45,10 @@ pub fn getAppDataDir(allocator: mem.Allocator, appname: []const u8) GetAppDataDi return fs.path.join(allocator, &[_][]const u8{ home_dir, "Library", "Application Support", appname }); }, .linux, .freebsd, .netbsd, .dragonfly, .openbsd, .solaris => { + if (os.getenv("XDG_DATA_HOME")) |xdg| { + return fs.path.join(allocator, &[_][]const u8{ xdg, appname }); + } + const home_dir = os.getenv("HOME") orelse { // TODO look in /etc/passwd return error.AppDataDirUnavailable;