diff options
Diffstat (limited to 'src/main.zig')
-rw-r--r-- | src/main.zig | 53 |
1 files changed, 14 insertions, 39 deletions
diff --git a/src/main.zig b/src/main.zig index 1b8f702..c45cbed 100644 --- a/src/main.zig +++ b/src/main.zig @@ -1,43 +1,19 @@ const std = @import("std"); +const dump = @import("dump.zig"); const adler32 = std.hash.Adler32; -const openFlags = std.fs.File.OpenFlags{ - .read = true, - .write = false, - .lock = std.fs.File.Lock.None, -}; - -fn dump(args: [][]u8) u8 { - if (args.len < 3) { - std.debug.warn("Usage: {} [subcommand] [options]\n", .{args[0]}); - return 255; - } - - var file = std.fs.openFileAbsolute(args[2], openFlags) catch { - std.debug.warn("Cannot open file {}\n", .{args[2]}); - return 255; - }; - defer file.close(); - - var buffer: [16]u8 = undefined; - var r: u64 = undefined; - while (true) { - r = file.read(&buffer) catch { - break; - }; - if (r <= 0) - break; - - for (buffer[0..r]) |c| { - std.debug.warn("0x{x:2} ", .{c}); - } - std.debug.warn(" -- {}\n", .{r}); - } - - return 0; -} fn help(args: [][]u8) u8 { - std.debug.warn("Usage: {} [subcommand] [options]\n", .{args[0]}); + std.debug.warn( + \\Usage: {} [subcommand] [options] + \\ + \\Resource Compiler for C++ + \\ + \\Subcommands: + \\ dump [options] inputs hexdump the input files + \\ + \\For a full list of subcommand options, use [subcommand] --help + \\ + , .{args[0]}); return if (args.len < 2) 255 else 0; } @@ -45,15 +21,14 @@ pub fn main() anyerror!u8 { var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator); defer arena.deinit(); - std.debug.warn("All your codebase are belong to us.\n\n", .{}); - const args = try std.process.argsAlloc(&arena.allocator); if (args.len < 2) { return help(args); } return switch (adler32.hash(args[1])) { - adler32.hash("dump") => dump(args), + adler32.hash("dump") => dump.cmd(args), + adler32.hash("-h"), adler32.hash("--help") => help(args), else => help(args), }; } |