Bug fixes

This commit is contained in:
Caleb Gardner
2026-06-17 05:23:39 -05:00
parent 42a92853a4
commit 80c4c8df5e
12 changed files with 353 additions and 210 deletions
+8 -8
View File
@@ -2,7 +2,7 @@ const std = @import("std");
const Io = std.Io;
const Writer = Io.Writer;
const builtin = @import("builtin");
const build = @import("build_options");
const build = @import("build");
const squashfs = @import("squashfs");
@@ -41,7 +41,7 @@ var force: bool = false;
pub fn main(init: std.process.Init) !void {
const io = init.io;
const alloc = init.alloc;
const alloc = init.gpa;
var stdout = Io.File.stdout();
var out = stdout.writer(io, &[0]u8{});
@@ -54,23 +54,23 @@ pub fn main(init: std.process.Init) !void {
return;
}
var fil = try Io.Dir.cwd().openFile(io, archive, .{}); //TODO: Handle error gracefully.
defer fil.close();
defer fil.close(io);
var arc: squashfs.Archive = try .init(io, fil, offset); //TODO: Update when memory size matters. //TODO: Handle error gracefully.
defer arc.deinit();
defer arc.deinit(io);
const options: squashfs.ExtractionOptions = .{
.single_threaded = threads == 1,
.single_threaded = (threads == 1),
.verbose = verbose,
.verbose_writer = if (verbose) &out.interface else null,
.ignore_xattr = ignore_xattrs,
.ignore_permissions = ignore_permissions,
};
if (force)
try std.fs.cwd().deleteTree(ext_loc);
try Io.Dir.cwd().deleteTree(io, ext_loc);
if (threads > 1) {
var limited_io = Io.Threaded.init(alloc, .{
.argv0 = .init(init.minimal.args),
.async_limit = threads,
.concurrent_limit = threads,
.async_limit = @enumFromInt(threads),
.concurrent_limit = @enumFromInt(threads),
.environ = init.minimal.environ,
});
try arc.extract(alloc, limited_io.io(), ext_loc, options); //TODO: Handle error gracefully.