Main "all-in-one" program source code.

master
Philippe Pittoli 2022-05-06 00:51:04 +02:00
parent 3efae0c623
commit 28990d9cb1
1 changed files with 30 additions and 0 deletions

30
src/main.zig Normal file
View File

@ -0,0 +1,30 @@
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(); }
}