diff options
| author | Robert Günzler <r@gnzler.io> | 2025-10-06 18:02:52 +0200 |
|---|---|---|
| committer | Robert Günzler <r@gnzler.io> | 2025-10-06 18:22:38 +0200 |
| commit | aaa8d35ebb3ed1921992a691842548252c8eb28f (patch) | |
| tree | 8cc7cc73c26cb1adcbefe6ec440317a9ecc0687c | |
| parent | be80c2023cbe984bd0337e4c24a6a07e3ab263ba (diff) | |
| download | site-aaa8d35ebb3ed1921992a691842548252c8eb28f.tar.gz | |
add watch command that shells out to entr
Signed-off-by: Robert Günzler <r@gnzler.io>
Diffstat (limited to '')
| -rw-r--r-- | src/exe.zig | 20 | ||||
| -rw-r--r-- | src/main.zig | 6 |
2 files changed, 26 insertions, 0 deletions
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 { |