zig-toybox/src/main.zig

31 lines
942 B
Zig

const std = @import("std");
const eq = std.mem.eql;
const ls = @import("ls.zig");
const cat = @import("cat.zig");
const lib = @import("lib.zig");
fn help() void {
const help_string =
\\
\\ toying with a single tool: zig build-exe ls.zig
\\ (currently ± working tools: cat, ls)
\\
\\ global compilation: zig build-exe main.zig
\\ -> produces "main" that includes all tools
\\ you can invoke each tool by creating a symbolic link to "main"
\\ ex: ln -s main ls <- now you have "ls" working as your well-known "ls" :)
;
lib.print("{s}\n", .{help_string});
}
pub fn main() !void {
const args = try std.process.argsAlloc(std.heap.page_allocator);
const bname = std.fs.path.basename(args[0]);
if (eq(u8, bname, "ls")) { try ls.main(); }
else if (eq(u8, bname, "cat")) { try cat.main(); }
else { help(); }
}