-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbasic.zig
More file actions
31 lines (25 loc) · 894 Bytes
/
basic.zig
File metadata and controls
31 lines (25 loc) · 894 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
const std = @import("std");
const zlap = @import("zlap");
const Logger = zlap.Logger;
const Handler = zlap.Handler;
pub fn main(init: std.process.Init) !void {
const allocator = init.arena.allocator();
var logger = Logger{};
// Create a simple CLI parser
var parser = zlap.Parser.init(allocator, "basic", "A basic example using zlap", &logger);
defer parser.deinit();
_ = parser
.setHandler(handler)
.option('n', "name", "Developer's name", "NAME");
const args = try init.minimal.args.toSlice(allocator);
try parser.parse(args);
try parser.execute();
}
fn handler(parser: *zlap.Parser) zlap.ParseError!void {
const logger = parser.logger;
const name = parser.getOption("name") orelse "Guest";
logger.info("Hello, {s}!", .{name});
if (parser.getFlag("verbose")) {
logger.debug("Verbose mode is ON", .{});
}
}