summaryrefslogtreecommitdiff
path: root/src/subcommand.zig
diff options
context:
space:
mode:
authorGravatar Uko Kokņevičs2022-04-28 15:27:11 +0300
committerGravatar Uko Kokņevičs2022-04-28 15:29:33 +0300
commit53af0877444ea6c14b1ad5baec94afbeebc5e5e0 (patch)
tree837fba9d78c895243f598c95916bff4a4c56f609 /src/subcommand.zig
parentAdd Installation.isActive, use it (diff)
downloadzup-53af0877444ea6c14b1ad5baec94afbeebc5e5e0.tar.gz
zup-53af0877444ea6c14b1ad5baec94afbeebc5e5e0.tar.xz
zup-53af0877444ea6c14b1ad5baec94afbeebc5e5e0.zip
Added support for config files
Diffstat (limited to 'src/subcommand.zig')
-rw-r--r--src/subcommand.zig12
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");
2const std = @import("std"); 2const std = @import("std");
3const zup = @import("zup"); 3const zup = @import("zup");
4 4
5const Allocator = std.mem.Allocator;
6const ArgIterator = std.process.ArgIterator; 5const ArgIterator = std.process.ArgIterator;
6const Config = zup.Config;
7 7
8const parsers = .{ 8const 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, &params, parsers, args, .{ 42 var res = clap.parseEx(clap.Help, &params, 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, &params, parsers),
65 allocator,
66 res,
67 );
68 } 66 }
69 }; 67 };
70} 68}