Cybersecurity-Projects/PROJECTS/advanced/zig-stateless-scanner/src/main.zig

32 lines
943 B
Zig

// ©AngelaMos | 2026
// main.zig
const std = @import("std");
const cli = @import("cli");
const smoke = @import("smoke");
const txcmd = @import("txcmd");
const scancmd = @import("scancmd");
pub fn main(init: std.process.Init) !void {
const io = init.io;
const arena = init.arena.allocator();
const args = try init.minimal.args.toSlice(arena);
const cmd: []const u8 = if (args.len > 1) args[1] else "";
if (std.mem.eql(u8, cmd, "--version") or std.mem.eql(u8, cmd, "-V")) {
return cli.printVersion(io);
}
if (std.mem.eql(u8, cmd, "smoke")) {
const ifname: []const u8 = if (args.len > 2) args[2] else "lo";
return smoke.run(io, ifname);
}
if (std.mem.eql(u8, cmd, "tx")) {
return txcmd.run(io, arena, args);
}
if (std.mem.eql(u8, cmd, "scan")) {
return scancmd.run(io, arena, args, init.environ_map);
}
return cli.printHelp(io, init.environ_map);
}