diff options
| -rw-r--r-- | src/main.zig | 7 |
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, |