diff options
Diffstat (limited to 'src/subcommand.zig')
| -rw-r--r-- | src/subcommand.zig | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/subcommand.zig b/src/subcommand.zig index ebd57ed..d750e94 100644 --- a/src/subcommand.zig +++ b/src/subcommand.zig | |||
| @@ -2,8 +2,8 @@ const clap = @import("clap"); | |||
| 2 | const std = @import("std"); | 2 | const std = @import("std"); |
| 3 | const zup = @import("zup"); | 3 | const zup = @import("zup"); |
| 4 | 4 | ||
| 5 | const Allocator = std.mem.Allocator; | ||
| 6 | const ArgIterator = std.process.ArgIterator; | 5 | const ArgIterator = std.process.ArgIterator; |
| 6 | const Config = zup.Config; | ||
| 7 | 7 | ||
| 8 | const parsers = .{ | 8 | const parsers = .{ |
| 9 | .COMMAND = clap.parsers.string, | 9 | .COMMAND = clap.parsers.string, |
| @@ -35,7 +35,9 @@ pub fn SubCommand(comptime template: type) type { | |||
| 35 | try writer.writeAll("\n" ++ template.description ++ "\n"); | 35 | try writer.writeAll("\n" ++ template.description ++ "\n"); |
| 36 | } | 36 | } |
| 37 | 37 | ||
| 38 | pub fn main(name: []const u8, allocator: Allocator, args: *ArgIterator) !void { | 38 | pub fn main(name: []const u8, config: Config, args: *ArgIterator) !void { |
| 39 | const allocator = config.allocator; | ||
| 40 | |||
| 39 | var diag = clap.Diagnostic{}; | 41 | var diag = clap.Diagnostic{}; |
| 40 | var res = clap.parseEx(clap.Help, ¶ms, parsers, args, .{ | 42 | var res = clap.parseEx(clap.Help, ¶ms, parsers, args, .{ |
| 41 | .allocator = allocator, | 43 | .allocator = allocator, |
| @@ -60,11 +62,7 @@ pub fn SubCommand(comptime template: type) type { | |||
| 60 | return error.ArgError; | 62 | return error.ArgError; |
| 61 | } | 63 | } |
| 62 | 64 | ||
| 63 | return template.main( | 65 | return template.main(@TypeOf(res), config, res); |
| 64 | clap.ResultEx(clap.Help, ¶ms, parsers), | ||
| 65 | allocator, | ||
| 66 | res, | ||
| 67 | ); | ||
| 68 | } | 66 | } |
| 69 | }; | 67 | }; |
| 70 | } | 68 | } |