const std = @import("std"); const process = std.process; const flags = @import("flags"); pub fn getArgs(gpa: std.mem.Allocator) process.ArgIterator.InitError!Args { const proc_args = try std.process.argsAlloc(gpa); defer std.process.argsFree(gpa, proc_args); const args = flags.parseOrExit(proc_args, "rfcp", Args, .{}); return args; } pub const Args = struct { pub const description = \\ A profiler that generates traces of fork, exec, and exit \\ system calls with timing information. ; command: union(enum) { record: struct {}, render: struct {}, pub const descriptions = .{ .record = "Record a trace of a process tree", .render = "Render a trace in a variety of formats" }; }, };