about summary refs log tree commit diff
path: root/src/exe.zig
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2025-10-06 18:02:52 +0200
committerRobert Günzler <r@gnzler.io>2025-10-06 18:22:38 +0200
commitaaa8d35ebb3ed1921992a691842548252c8eb28f (patch)
tree8cc7cc73c26cb1adcbefe6ec440317a9ecc0687c /src/exe.zig
parentbe80c2023cbe984bd0337e4c24a6a07e3ab263ba (diff)
downloadsite-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.zig20
1 files changed, 20 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;
+}