| author | |
| committer | |
| log | 18ac9987670b01cd254dc05031e1758dacbc7265 |
| tree | f82881589c1795e4b23756ebadbc90beab995ee0 |
| parent | 502d413621a8c2de3c6987e7d5a654392e2eab17 |
2 files changed, 19 insertions(+), 3 deletions(-)
src-self-hosted/introspect.zig+13-3| ... | ... | @@ -73,7 +73,17 @@ pub fn resolveZigLibDir(allocator: *mem.Allocator) ![]u8 { |
| 73 | 73 | }; |
| 74 | 74 | } |
| 75 | 75 | |
| 76 | /// Caller must free result | |
| 77 | pub fn resolveZigCacheDir(allocator: *mem.Allocator) ![]u8 { | |
| 78 | return std.mem.dupe(allocator, u8, "zig-cache"); | |
| 76 | /// Caller owns returned memory. | |
| 77 | pub fn resolveGlobalCacheDir(allocator: *mem.Allocator) ![]u8 { | |
| 78 | const appname = "zig"; | |
| 79 | ||
| 80 | if (std.Target.current.os.tag != .windows) { | |
| 81 | if (std.os.getenv("XDG_CACHE_HOME")) |cache_root| { | |
| 82 | return fs.path.join(allocator, &[_][]const u8{ cache_root, appname }); | |
| 83 | } else if (std.os.getenv("HOME")) |home| { | |
| 84 | return fs.path.join(allocator, &[_][]const u8{ home, ".cache", appname }); | |
| 85 | } | |
| 86 | } | |
| 87 | ||
| 88 | return fs.getAppDataDir(allocator, appname); | |
| 79 | 89 | } |
src-self-hosted/print_env.zig+6| ... | ... | @@ -13,6 +13,9 @@ pub fn cmdEnv(gpa: *Allocator, args: []const []const u8, stdout: anytype) !void |
| 13 | 13 | const zig_std_dir = try std.fs.path.join(gpa, &[_][]const u8{ zig_lib_dir, "std" }); |
| 14 | 14 | defer gpa.free(zig_std_dir); |
| 15 | 15 | |
| 16 | const global_cache_dir = try introspect.resolveGlobalCacheDir(gpa); | |
| 17 | defer gpa.free(global_cache_dir); | |
| 18 | ||
| 16 | 19 | var bos = std.io.bufferedOutStream(stdout); |
| 17 | 20 | const bos_stream = bos.outStream(); |
| 18 | 21 | |
| ... | ... | @@ -25,6 +28,9 @@ pub fn cmdEnv(gpa: *Allocator, args: []const []const u8, stdout: anytype) !void |
| 25 | 28 | try jws.objectField("std_dir"); |
| 26 | 29 | try jws.emitString(zig_std_dir); |
| 27 | 30 | |
| 31 | try jws.objectField("global_cache_dir"); | |
| 32 | try jws.emitString(global_cache_dir); | |
| 33 | ||
| 28 | 34 | try jws.objectField("version"); |
| 29 | 35 | try jws.emitString(build_options.version); |
| 30 | 36 |