Compare commits

2 Commits

Author SHA1 Message Date
f8018854be Merge branch 'main' of ssh://musuka.dev:2222/paoda/zba 2022-04-07 17:23:22 -03:00
fae4b430ab chore: update dependencies 2022-04-07 17:23:07 -03:00
3 changed files with 16 additions and 17 deletions

View File

@@ -32,26 +32,25 @@ pub fn main() anyerror!void {
const alloc = gpa.allocator(); const alloc = gpa.allocator();
defer std.debug.assert(!gpa.deinit()); defer std.debug.assert(!gpa.deinit());
// Parse CLI Arguments // CLI Arguments
const params = comptime [_]clap.Param(clap.Help){ const params = comptime clap.parseParamsComptime(
clap.parseParam("-h, --help Display this help and exit. ") catch unreachable, \\-h, --help Display this help and exit.
clap.parseParam("-b, --bios <PATH> Optional Path to GBA BIOS ROM. ") catch unreachable, \\-b, --bios <str> Optional path to a GBA BIOS ROM.
clap.parseParam("<PATH> Path to GBA GamePak ROM ") catch unreachable, \\<str> Path to the GBA GamePak ROM
}; \\
);
var args = try clap.parse(clap.Help, &params, .{}); var res = try clap.parse(clap.Help, &params, clap.parsers.default, .{});
defer args.deinit(); defer res.deinit();
if (args.flag("--help")) return clap.help(std.io.getStdErr().writer(), &params);
const bios_path: ?[]const u8 = if (args.option("--bios")) |p| p else null;
const positionals = args.positionals();
const stderr = std.io.getStdErr(); const stderr = std.io.getStdErr();
defer stderr.close(); defer stderr.close();
const rom_path = switch (positionals.len) { if (res.args.help) return clap.help(stderr.writer(), clap.Help, &params, .{});
1 => positionals[0], const bios_path: ?[]const u8 = if (res.args.bios) |p| p else null;
const rom_path = switch (res.positionals.len) {
1 => res.positionals[0],
0 => { 0 => {
try stderr.writeAll("ZBA requires a positional path to a GamePak ROM.\n"); try stderr.writeAll("ZBA requires a positional path to a GamePak ROM.\n");
return CliError.InsufficientOptions; return CliError.InsufficientOptions;