Main "all-in-one" program source code.
parent
3efae0c623
commit
28990d9cb1
|
@ -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(); }
|
||||||
|
}
|
Loading…
Reference in New Issue