authorgravatar for jacoblevgw@gmail.comJacob G-W <jacoblevgw@gmail.com> 2020-12-24 18:28:13-05:00
committergravatar for jacoblevgw@gmail.comJacob G-W <jacoblevgw@gmail.com> 2020-12-24 18:28:13-05:00
log1322a7314139206b3b67240b826d02821cc87a7f
treebbb50dd27339bb56ca1e82cf4ea668a5dd4c9b6e
parente18abab55aea4a5c3b347274e41de9fdc24e950c

make if the diff too large just default to dirty_diff_too_big as the diff


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

build.zig+7-3
...@@ -237,9 +237,13 @@ pub fn build(b: *Builder) !void {...@@ -237,9 +237,13 @@ pub fn build(b: *Builder) !void {
237 // Detect dirty changes.237 // Detect dirty changes.
238 const diff_untrimmed = b.execAllowFail(&[_][]const u8{238 const diff_untrimmed = b.execAllowFail(&[_][]const u8{
239 "git", "-C", b.build_root, "diff", "HEAD",239 "git", "-C", b.build_root, "diff", "HEAD",
240 }, &code, .Ignore) catch |err| {240 }, &code, .Ignore) catch |err| switch (err) {
241 std.debug.print("Error executing git diff: {}", .{err});241 // when there is a big diff, usually after resolving merge conflicts, but before a commit
242 std.process.exit(1);242 error.StreamTooLong => "dirty_diff_too_big",
243 else => {
244 std.debug.print("Error executing git diff: {}\n", .{err});
245 std.process.exit(1);
246 },
243 };247 };
244 const trimmed_diff = mem.trim(u8, diff_untrimmed, " \n\r");248 const trimmed_diff = mem.trim(u8, diff_untrimmed, " \n\r");
245 const dirty_suffix = if (trimmed_diff.len == 0) "" else s: {249 const dirty_suffix = if (trimmed_diff.len == 0) "" else s: {