about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main.zig7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/main.zig b/src/main.zig
index 2134d45..b1be499 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -19,6 +19,9 @@ pub fn main(init: std.process.Init) !void {
     try Cli.run(init);
 }
 
+// TODO: make this not a global
+var FORCE: bool = false;
+
 const Cli = struct {
     fn usage() void {
         std.debug.print("usage: rbc SOURCE TARGET-DIR\n\n", .{});
@@ -33,6 +36,8 @@ const Cli = struct {
         const args = try init.minimal.args.toSlice(gpa);
         defer gpa.free(args);
 
+        if (init.environ_map.get("RBC_FORCE")) |_| FORCE = true;
+
         // parse options
         for (args) |arg| {
             if (std.mem.eql(u8, arg, "help")) return Cli.usage();
@@ -399,6 +404,8 @@ fn formatLink(gpa: Allocator, name: []const u8, offset: ?[]const u8) ![]u8 {
 }
 
 fn targetExists(io: Io, gpa: Allocator, target_fd: Io.File, root_dir: Io.Dir) !bool {
+    if (FORCE) return false;
+
     const target_parts = getXattrSourceComponents(gpa, target_fd) catch |err|
         switch (err) {
             error.XattrNotFound => return false,