diff options
Diffstat (limited to 'src')
| -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 { |