From f0c07e7688a24ae2cb42ba26675b7fb9d15157c9 Mon Sep 17 00:00:00 2001 From: Robert Günzler Date: Thu, 29 Jan 2026 20:44:57 +0100 Subject: remember generated paths MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Robert Günzler --- src/gen.zig | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'src/gen.zig') diff --git a/src/gen.zig b/src/gen.zig index c4d945c..3f360e4 100644 --- a/src/gen.zig +++ b/src/gen.zig @@ -7,6 +7,8 @@ const Context = @import("main.zig").Context; const log = std.log.scoped(.gen); pub fn generate(ctx: *Context) !void { + ctx.generated.clearRetainingCapacity(); + ctx.progress_start("generate"); defer ctx.progress_end(); @@ -16,7 +18,7 @@ pub fn generate(ctx: *Context) !void { try genSite(ctx); - log.info("Generated {d} files.", .{ctx.generated}); + log.info("Generated {d} files.", .{ctx.generated.items.len}); log.info("Generated {d} tildes.", .{ctx.tilde}); } @@ -108,7 +110,6 @@ fn genSite(ctx: *Context) !void { log.debug("generating {s} at {s}", .{ p, rel_dstpath }); const f = try fs.FileSwapper.createAt(ctx.allocator(), dstpath); - defer f.close(); var buffer: [1024]u8 = undefined; var w = f.writer(&buffer); @@ -117,7 +118,15 @@ fn genSite(ctx: *Context) !void { defer ctx.allocator().free(page_name); try build(ctx.allocator(), &w.interface, page_name, srcpath); - ctx.generated += 1; + + f.close(); + + if (f.swapped.*) { + try ctx.generated.append( + ctx.allocator(), + try ctx.allocator().dupe(u8, dstpath), + ); + } } } @@ -299,8 +308,7 @@ fn inject(allocator: std.mem.Allocator, w: *std.Io.Writer, srcpath: []const u8) defer chunkw.clearRetainingCapacity(); // reset chunk _ = r.interface.streamDelimiter(&chunkw.writer, '\n') catch |err| - if (err == error.EndOfStream) break - else return err; + if (err == error.EndOfStream) break else return err; _ = r.interface.toss(1); // skip newline delimiter -- cgit 1.4.1