1
Fork 0

wip: turbo-getent

main
Motiejus Jakštys 2022-07-11 06:07:11 +03:00
parent 8877c7d812
commit 6ae17fe99d
1 changed files with 50 additions and 0 deletions

50
src/turbo-getent.zig Normal file
View File

@ -0,0 +1,50 @@
const std = @import("std");
const io = std.io;
const os = std.os;
const fmt = std.fmt;
const flags = @import("flags.zig");
const usage =
\\usage: turbo-getent [OPTION]... group|passwd [key...]
\\
\\ -h Print this help message and exit
\\ --db=PATH Path to the database (default: /etc/turbonss/db.turbo)
\\
\\turbo-getent resolves group or passwd (a.k.a. user) entries from the
\\database file. If one or more key arguments are provided, then only
\\entries that match the supplied keys will be displayed. If no key is
\\provided, all entries will be displayed.
\\
;
pub fn main() !void {
// This line is here because of https://github.com/ziglang/zig/issues/7807
const argv: []const [*:0]const u8 = os.argv;
const stderr = io.getStdErr().writer();
const stdout = io.getStdOut().writer();
const return_code = execute(stdout, stderr, argv[1..]);
os.exit(return_code);
}
fn execute(
stdout: anytype,
stderr: anytype,
argv: []const [*:0]const u8,
) u8 {
const myflags = flags.parse(argv, &[_]flags.Flag{
.{ .name = "-h", .kind = .boolean },
}) catch {
stderr.writeAll(usage) catch {};
return 1;
};
if (myflags.boolFlag("-h")) {
stdout.writeAll(usage) catch return 1;
return 0;
}
return 0;
}