This commit is contained in:
Dario48 2026-06-20 19:30:18 +02:00
commit c93973793e

View file

@ -142,10 +142,10 @@ fn handleErr(caught: anyerror) void {
} }
pub fn main(init: std.process.Init) !void { pub fn main(init: std.process.Init) !void {
var iter = try init.minimal.args.iterateAllocator(init.gpa);
defer iter.deinit();
var nwd: ?[]const u8 = null;
{ {
var iter = try init.minimal.args.iterateAllocator(init.gpa);
defer iter.deinit();
_ = iter.next().?; _ = iter.next().?;
while (iter.next()) |i| { while (iter.next()) |i| {
if (binOptMap.get(i)) |o| if (binOptMap.get(i)) |o|
@ -166,6 +166,7 @@ pub fn main(init: std.process.Init) !void {
const file = std.Io.Dir.cwd().openFile(init.io, args.zonPath, .{ .allow_directory = false }) catch |err| switch (err) { const file = std.Io.Dir.cwd().openFile(init.io, args.zonPath, .{ .allow_directory = false }) catch |err| switch (err) {
error.IsDir => blk: { error.IsDir => blk: {
nwd = args.zonPath;
const dir = try std.Io.Dir.cwd().openDir(init.io, args.zonPath, .{}); const dir = try std.Io.Dir.cwd().openDir(init.io, args.zonPath, .{});
defer dir.close(init.io); defer dir.close(init.io);
break :blk try dir.openFile(init.io, "rom_list.zon", .{}); break :blk try dir.openFile(init.io, "rom_list.zon", .{});
@ -173,6 +174,13 @@ pub fn main(init: std.process.Init) !void {
else => |e| return e, else => |e| return e,
}; };
defer file.close(init.io); defer file.close(init.io);
if (nwd == null) {
nwd = std.Io.Dir.path.dirname(args.zonPath) orelse ".";
}
try std.Io.Threaded.chdir(nwd.?);
var buf: [1024]u8 = undefined; var buf: [1024]u8 = undefined;
var reader = file.reader(init.io, &buf); var reader = file.reader(init.io, &buf);
const content = try reader.interface.allocRemainingAlignedSentinel(init.arena.allocator(), .unlimited, .of(u8), 0); const content = try reader.interface.allocRemainingAlignedSentinel(init.arena.allocator(), .unlimited, .of(u8), 0);