about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/main.zig14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/main.zig b/src/main.zig
index dce7aef..febd896 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -198,6 +198,8 @@ const Builder = struct {
         // atomic?
         const target_fd = try self.target_dir.createFile(io, target_path, .{
             .lock = .exclusive,
+            .read = true,
+            .truncate = false,
         });
         defer target_fd.close(io);
 
@@ -377,7 +379,11 @@ const Builder = struct {
         defer gpa.free(target_name);
 
         // TODO: allow customizing tilde dir
-        const target_fd = try self.target_dir.createFile(io, target_name, .{ .lock = .exclusive });
+        const target_fd = try self.target_dir.createFile(io, target_name, .{
+            .lock = .exclusive,
+            .read = true,
+            .truncate = false,
+        });
         defer target_fd.close(io);
         if (try targetExists(io, gpa, target_fd, self.root_dir)) return;
 
@@ -420,7 +426,11 @@ const Builder = struct {
         const source_stem = std.fs.path.basename(self.source.path)[5..]; // trim "meta."
         log.debug("meta.feed : {s}", .{source_stem});
 
-        const target_fd = try self.target_dir.createFile(io, source_stem, .{ .lock = .exclusive });
+        const target_fd = try self.target_dir.createFile(io, source_stem, .{
+            .lock = .exclusive,
+            .read = true,
+            .truncate = false,
+        });
         defer target_fd.close(io);
         if (try targetExists(io, gpa, target_fd, self.root_dir)) return;