about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/gen.zig2
-rw-r--r--src/main.zig7
2 files changed, 8 insertions, 1 deletions
diff --git a/src/gen.zig b/src/gen.zig
index fbc67bd..449342e 100644
--- a/src/gen.zig
+++ b/src/gen.zig
@@ -110,7 +110,7 @@ fn genSite(ctx: *Context, p: []const u8) !void {
 
     const srcmtime = try fs.getLastEdit(srcpath);
     const dstmtime = try fs.getLastEdit(dstpath);
-    if (srcmtime.sec < dstmtime.sec) return;
+    if (!ctx.force and srcmtime.sec < dstmtime.sec) return;
 
     log.debug("generating {s} at {s}", .{ p, rel_dstpath });
 
diff --git a/src/main.zig b/src/main.zig
index dfcedfa..3edfb1c 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -32,6 +32,9 @@ pub const Context = struct {
     meta: usize = 0,
     tilde: usize = 0,
 
+    // opts
+    force: bool = false,
+
     pub const params = struct {
         pub const PAGE_PATH = "src/inc";
         pub const SITE_PATH = "site";
@@ -192,6 +195,10 @@ const Cli = struct {
 
     fn genCmd(ctx: *Context, argv: ?*std.process.ArgIterator) !void {
         try index(ctx);
+
+        if (checkOpts(argv, &.{ "-f", "--force" }))
+            ctx.force = true;
+
         try gen.generate(ctx);
 
         if (checkOpts(argv, &.{ "-c", "--commit" }))