diff options
Diffstat (limited to '')
| -rw-r--r-- | src/exe.zig | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/exe.zig b/src/exe.zig index 998ea3b..ad3a7aa 100644 --- a/src/exe.zig +++ b/src/exe.zig @@ -57,20 +57,29 @@ pub fn WaitPool( pub fn runPandoc(ctx: *Context) !void { ctx.generated.clearRetainingCapacity(); - ctx.progress_start("Processing markdown files"); + ctx.progress_start("Processing markdown files", true); defer ctx.progress_end(); - // TODO: check if pandoc is installed and exit gracefully + var md = try std.ArrayList([]const u8).initCapacity(ctx.allocator(), 1); + defer md.deinit(ctx.allocator()); + + // TODO: support more than one site + for (ctx.sites.getLast().pages.items) |p| + if (p.kind == .Markdown) try md.append(ctx.allocator(), p.path); + // TODO: check if pandoc is installed and exit gracefully try WaitPool( []const u8, pandocWorker, - ).work(ctx, ctx.markdown.items, .{}); + ).work(ctx, md.items, .{}); - log.info("Processed {d} markdown files.", .{ctx.markdown.items.len}); + log.info("Processed {d} markdown files.", .{md.items.len}); } fn pandocWorker(ctx: *Context, page: []const u8) !void { + ctx.progress_start(page, true); + defer ctx.progress_end(); + const source_path = try std.fs.path.join(ctx.allocator(), &.{ Context.params.PAGE_PATH, page }); defer ctx.allocator().free(source_path); const target_path = try fs.replaceExtension(ctx.allocator(), source_path, "htm"); @@ -159,7 +168,7 @@ pub fn captureStdout(ctx: *Context, argv: []const []const u8, env_map: ?*std.pro const label = try std.fmt.allocPrint(ctx.allocator(), "running {s}", .{command}); defer ctx.allocator().free(label); - ctx.progress_start(label); + ctx.progress_start(label, true); defer ctx.progress_end(); log.debug("running {s}", .{command}); @@ -187,7 +196,7 @@ pub fn shell(ctx: *Context, command: []const u8, env_map: ?*std.process.EnvMap) const label = try std.fmt.allocPrint(ctx.allocator(), "running {s}", .{command}); defer ctx.allocator().free(label); - ctx.progress_start(label); + ctx.progress_start(label, true); defer ctx.progress_end(); var p = std.process.Child.init(&.{ |