Merge pull request #646 from Techatrix/cache-build-runner

Place build_runner.zig in zls subfolder
This commit is contained in:
Techatrix 2022-09-12 11:46:36 +00:00 committed by GitHub
commit 6363e7a064
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -202,13 +202,24 @@ pub fn configChanged(config: *Config, allocator: std.mem.Allocator, builtin_crea
config.builtin_path = try std.fs.path.join(allocator, &.{ builtin_creation_dir.?, "builtin.zig" }); config.builtin_path = try std.fs.path.join(allocator, &.{ builtin_creation_dir.?, "builtin.zig" });
} }
if (null == config.global_cache_path) {
const cache_dir_path = (try known_folders.getPath(allocator, .cache)) orelse { const cache_dir_path = (try known_folders.getPath(allocator, .cache)) orelse {
logger.warn("Known-folders could not fetch the cache path", .{}); logger.warn("Known-folders could not fetch the cache path", .{});
return; return;
}; };
defer allocator.free(cache_dir_path);
config.global_cache_path = try std.fs.path.resolve(allocator, &[_][]const u8{ cache_dir_path, "zls" });
std.fs.makeDirAbsolute(config.global_cache_path.?) catch |err| switch(err) {
error.PathAlreadyExists => {},
else => return err,
};
}
if (null == config.build_runner_path) { if (null == config.build_runner_path) {
config.build_runner_path = try std.fs.path.resolve(allocator, &[_][]const u8{ cache_dir_path, "build_runner.zig" }); config.build_runner_path = try std.fs.path.resolve(allocator, &[_][]const u8{ config.global_cache_path.?, "build_runner.zig" });
const file = try std.fs.createFileAbsolute(config.build_runner_path.?, .{}); const file = try std.fs.createFileAbsolute(config.build_runner_path.?, .{});
defer file.close(); defer file.close();
@ -216,8 +227,4 @@ pub fn configChanged(config: *Config, allocator: std.mem.Allocator, builtin_crea
try file.writeAll(@embedFile("special/build_runner.zig")); try file.writeAll(@embedFile("special/build_runner.zig"));
} }
if (null == config.global_cache_path) {
defer allocator.free(cache_dir_path);
config.global_cache_path = try std.fs.path.resolve(allocator, &[_][]const u8{ cache_dir_path, "zls" });
}
} }