#include "processor/proc_argparser.h" #include "aliases.h" #include INTERNAL error_t argp_parser(i32 key, char *arg, argp_state *state); INTERNAL argp parser = {}; ProcessorArgs parse_args(i32 argc, char *argv[]) { ProcessorArgs args = {}; parser.options = {}; parser.parser = argp_parser; parser.args_doc = "JSON_FILEPATH"; argp_parse(&parser, argc, argv, 0, 0, &args); return args; } error_t argp_parser(i32 key, char *arg, argp_state *state) { ProcessorArgs *args = (ProcessorArgs *)state->input; switch (key) { case ARGP_KEY_ARG: if (state->arg_num >= 1) { argp_usage(state); } args->filepath = arg; break; case ARGP_KEY_END: if (state->arg_num < 1) { argp_usage(state); } break; default: return ARGP_ERR_UNKNOWN; } return 0; }