authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2026-09-15 22:23:39-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2026-09-16 13:12:47-07:00
log4cfd2563309eca3e79c2f2aac104c963925d3166
treea2c3ba3461368781f72695f115e40dcb977baadc
parent597306838dcc4802c17e94ba156ccf3912e9934c

build.zig: metadata dependency on .git/logs/HEAD


1 files changed, 3 insertions(+), 2 deletions(-)

build.zig+3-2
...@@ -272,12 +272,13 @@ pub fn build(b: *std.Build) !void {...@@ -272,12 +272,13 @@ pub fn build(b: *std.Build) !void {
272 const io = b.graph.io;272 const io = b.graph.io;
273 const git_file = b.root.openFile(io, ".git", .{ .allow_directory = false }) catch |err| switch (err) {273 const git_file = b.root.openFile(io, ".git", .{ .allow_directory = false }) catch |err| switch (err) {
274 error.IsDir => {274 error.IsDir => {
275 b.dependOnFileContents(b.path(".git/logs/HEAD"));275 b.dependOnFileMetadata(b.path(".git/logs/HEAD"));
276 break :git;276 break :git;
277 },277 },
278 else => |e| return e,278 else => |e| return e,
279 };279 };
280 defer git_file.close(io);280 defer git_file.close(io);
281 b.dependOnFileContents(b.path(".git"));
281 var line_buffer: ["gitdir: ".len + std.Io.Dir.max_path_bytes + 1]u8 = undefined;282 var line_buffer: ["gitdir: ".len + std.Io.Dir.max_path_bytes + 1]u8 = undefined;
282 var git_file_reader = git_file.reader(io, &line_buffer);283 var git_file_reader = git_file.reader(io, &line_buffer);
283 if (std.mem.cutPrefix(u8, std.mem.trimEnd(u8, try git_file_reader.interface.allocRemaining(284 if (std.mem.cutPrefix(u8, std.mem.trimEnd(u8, try git_file_reader.interface.allocRemaining(
...@@ -285,7 +286,7 @@ pub fn build(b: *std.Build) !void {...@@ -285,7 +286,7 @@ pub fn build(b: *std.Build) !void {
285 .limited("gitdir: ".len + std.Io.Dir.max_path_bytes + "\r\n".len),286 .limited("gitdir: ".len + std.Io.Dir.max_path_bytes + "\r\n".len),
286 ), "\r\n"), "gitdir: ")) |git_dir| {287 ), "\r\n"), "gitdir: ")) |git_dir| {
287 const head_file = b.pathJoin(&.{ git_dir, "logs", "HEAD" });288 const head_file = b.pathJoin(&.{ git_dir, "logs", "HEAD" });
288 b.dependOnFileContents(if (std.Io.Dir.path.isAbsolute(head_file))289 b.dependOnFileMetadata(if (std.Io.Dir.path.isAbsolute(head_file))
289 b.graph.cwdRelativePath(head_file)290 b.graph.cwdRelativePath(head_file)
290 else291 else
291 b.path(head_file));292 b.path(head_file));