From aaa8d35ebb3ed1921992a691842548252c8eb28f Mon Sep 17 00:00:00 2001 From: Robert Günzler Date: Mon, 6 Oct 2025 18:02:52 +0200 Subject: add watch command that shells out to entr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Robert Günzler --- src/exe.zig | 20 ++++++++++++++++++++ src/main.zig | 6 ++++++ 2 files changed, 26 insertions(+) (limited to 'src') diff --git a/src/exe.zig b/src/exe.zig index 7c7e026..e0cb7ef 100644 --- a/src/exe.zig +++ b/src/exe.zig @@ -107,3 +107,23 @@ pub fn captureStdout(ctx: *Context, argv: []const []const u8, env_map: ?*std.pro const result = try p.wait(); _ = result; } + +pub fn shell(ctx: *Context, command: []const u8) !void { + const label = try std.fmt.allocPrint(ctx.allocator(), "running {s}", .{command}); + defer ctx.allocator().free(label); + + ctx.progress_start(label); + defer ctx.progress_end(); + + var p = std.process.Child.init(&.{ + "sh", + "-c", + command, + }, std.heap.page_allocator); + + p.progress_node = ctx.progress_nodes.getLast(); + + try p.spawn(); + const result = try p.wait(); + _ = result; +} diff --git a/src/main.zig b/src/main.zig index 9a588a9..04334f1 100644 --- a/src/main.zig +++ b/src/main.zig @@ -174,6 +174,12 @@ const Cli = struct { try index(ctx); try exe.runPandoc(ctx); } + + fn watchCmd(ctx: *Context) !void { + try exe.shell(ctx, + \\find ./src/inc/ -type f -print | entr -nc -dd -- rbl md gen + ); + } }; pub fn main() !void { -- cgit 1.4.1