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(); } }