diff options
| author | Isaac Freund <mail@isaacfreund.com> | 2022-12-28 19:47:09 +0100 |
|---|---|---|
| committer | Isaac Freund <mail@isaacfreund.com> | 2022-12-28 20:21:23 +0100 |
| commit | 16cbe5f469594439035da63e1f40d3fffe66d9a9 (patch) | |
| tree | 5d65c72cc656271f546ccaf94b21be01beb489ef /rivertile | |
| parent | ad1dbb1180a4fc5f2b5000a440b4a6f2683b8e8f (diff) | |
| download | river-16cbe5f469594439035da63e1f40d3fffe66d9a9.tar.gz river-16cbe5f469594439035da63e1f40d3fffe66d9a9.tar.xz | |
flags: rewrite to allow [:0]const u8 arguments
This also cleans up the code by using @Type(), eliminating the need
for the argFlag() and boolFlag() functions.
Allowing [:0]const u8 arguments makes this parser useful for
river-control commands as well.
Diffstat (limited to 'rivertile')
| -rw-r--r-- | rivertile/main.zig | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/rivertile/main.zig b/rivertile/main.zig index bf28bf7..a5f4ce0 100644 --- a/rivertile/main.zig +++ b/rivertile/main.zig @@ -306,7 +306,7 @@ const Output = struct { pub fn main() !void { // https://github.com/ziglang/zig/issues/7807 const argv: [][*:0]const u8 = os.argv; - const result = flags.parse(argv[1..], &[_]flags.Flag{ + const result = flags.parser([*:0]const u8, &[_]flags.Flag{ .{ .name = "-h", .kind = .boolean }, .{ .name = "-version", .kind = .boolean }, .{ .name = "-view-padding", .kind = .arg }, @@ -314,37 +314,37 @@ pub fn main() !void { .{ .name = "-main-location", .kind = .arg }, .{ .name = "-main-count", .kind = .arg }, .{ .name = "-main-ratio", .kind = .arg }, - }) catch { + }).parse(argv[1..]) catch { try std.io.getStdErr().writeAll(usage); os.exit(1); }; - if (result.boolFlag("-h")) { + if (result.flags.@"-h") { try std.io.getStdOut().writeAll(usage); os.exit(0); } if (result.args.len != 0) fatalPrintUsage("unknown option '{s}'", .{result.args[0]}); - if (result.boolFlag("-version")) { + if (result.flags.@"-version") { try std.io.getStdOut().writeAll(@import("build_options").version ++ "\n"); os.exit(0); } - if (result.argFlag("-view-padding")) |raw| { + if (result.flags.@"-view-padding") |raw| { view_padding = fmt.parseUnsigned(u31, raw, 10) catch fatalPrintUsage("invalid value '{s}' provided to -view-padding", .{raw}); } - if (result.argFlag("-outer-padding")) |raw| { + if (result.flags.@"-outer-padding") |raw| { outer_padding = fmt.parseUnsigned(u31, raw, 10) catch fatalPrintUsage("invalid value '{s}' provided to -outer-padding", .{raw}); } - if (result.argFlag("-main-location")) |raw| { + if (result.flags.@"-main-location") |raw| { default_main_location = std.meta.stringToEnum(Location, raw) orelse fatalPrintUsage("invalid value '{s}' provided to -main-location", .{raw}); } - if (result.argFlag("-main-count")) |raw| { + if (result.flags.@"-main-count") |raw| { default_main_count = fmt.parseUnsigned(u31, raw, 10) catch fatalPrintUsage("invalid value '{s}' provided to -main-count", .{raw}); } - if (result.argFlag("-main-ratio")) |raw| { + if (result.flags.@"-main-ratio") |raw| { default_main_ratio = fmt.parseFloat(f64, raw) catch { fatalPrintUsage("invalid value '{s}' provided to -main-ratio", .{raw}); }; |
