diff options
Diffstat (limited to 'src/subcommand.zig')
| -rw-r--r-- | src/subcommand.zig | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/subcommand.zig b/src/subcommand.zig index 8fde170..6a6259e 100644 --- a/src/subcommand.zig +++ b/src/subcommand.zig | |||
| @@ -21,7 +21,9 @@ pub fn SubCommand(comptime template: type) type { | |||
| 21 | ++ template.params); | 21 | ++ template.params); |
| 22 | 22 | ||
| 23 | pub fn help(name: []const u8) !void { | 23 | pub fn help(name: []const u8) !void { |
| 24 | const writer = std.io.getStdErr().writer(); | 24 | var buf: [1024]u8 = undefined; |
| 25 | var stderr = std.fs.File.stderr().writer(&buf); | ||
| 26 | const writer = &stderr.interface; | ||
| 25 | try writer.print("USAGE: zup {s} ", .{name}); | 27 | try writer.print("USAGE: zup {s} ", .{name}); |
| 26 | try clap.usage(writer, clap.Help, ¶ms); | 28 | try clap.usage(writer, clap.Help, ¶ms); |
| 27 | try writer.writeAll("\n\n"); | 29 | try writer.writeAll("\n\n"); |
| @@ -33,6 +35,7 @@ pub fn SubCommand(comptime template: type) type { | |||
| 33 | .spacing_between_parameters = 0, | 35 | .spacing_between_parameters = 0, |
| 34 | }); | 36 | }); |
| 35 | try writer.writeAll("\n" ++ template.description ++ "\n"); | 37 | try writer.writeAll("\n" ++ template.description ++ "\n"); |
| 38 | return writer.flush(); | ||
| 36 | } | 39 | } |
| 37 | 40 | ||
| 38 | pub fn main(name: []const u8, config: Config, args: *ArgIterator) !void { | 41 | pub fn main(name: []const u8, config: Config, args: *ArgIterator) !void { |
| @@ -43,7 +46,10 @@ pub fn SubCommand(comptime template: type) type { | |||
| 43 | .allocator = allocator, | 46 | .allocator = allocator, |
| 44 | .diagnostic = &diag, | 47 | .diagnostic = &diag, |
| 45 | }) catch |err| { | 48 | }) catch |err| { |
| 46 | diag.report(std.io.getStdErr().writer(), err) catch {}; | 49 | var buf: [1024]u8 = undefined; |
| 50 | var stderr = std.fs.File.stderr().writer(&buf); | ||
| 51 | diag.report(&stderr.interface, err) catch {}; | ||
| 52 | stderr.interface.flush() catch {}; | ||
| 47 | try help(name); | 53 | try help(name); |
| 48 | return err; | 54 | return err; |
| 49 | }; | 55 | }; |