about summary refs log tree commit diff
path: root/src/main.zig
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/main.zig18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/main.zig b/src/main.zig
index 8e0b27e..7199bce 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -162,6 +162,8 @@ const Cli = struct {
                 try Cli.mdCmd(ctx);
             } else if (std.mem.eql(u8, arg, "watch")) {
                 try Cli.watchCmd(ctx);
+            } else if (std.mem.eql(u8, arg, "serve")) {
+                try Cli.serveCmd(ctx);
             } else {
                 Cli.helpCmd(ctx);
             }
@@ -169,7 +171,7 @@ const Cli = struct {
     }
 
     fn helpCmd(_: *Context) void {
-        std.debug.print("usage: rbl [gen|md]\n\n", .{});
+        std.debug.print("usage: rbl [gen|md|watch|serve]\n\n", .{});
     }
 
     fn genCmd(ctx: *Context) !void {
@@ -186,7 +188,19 @@ const Cli = struct {
     fn watchCmd(ctx: *Context) !void {
         try exe.shell(ctx,
             \\find ./src/inc/ -type f -print | entr -nc -dd -- rbl md gen
-        );
+        , null);
+    }
+
+    fn serveCmd(ctx: *Context) !void {
+        var env_map = try std.process.getEnvMap(ctx.allocator());
+        defer env_map.deinit();
+
+        try env_map.put("CADDY_HTTP_PORT", "1414");
+        try env_map.put("CADDY_HOST", "localhost");
+
+        try exe.shell(ctx,
+            \\caddy fmt --overwrite && caddy run --watch
+        , &env_map);
     }
 };