* @brief parse the command line arguments * * @param argc * @param argv */
| 254 | * @param argv |
| 255 | */ |
| 256 | void parse_cmd(int argc, char *argv[], struct arguments *args) { |
| 257 | init_arg(args); |
| 258 | |
| 259 | static struct argp argp = {.options = options, |
| 260 | .parser = parse_opt, |
| 261 | .args_doc = args_doc, |
| 262 | .doc = doc, |
| 263 | .children = NULL, |
| 264 | .help_filter = NULL, |
| 265 | .argp_domain = NULL}; |
| 266 | |
| 267 | argp_parse(&argp, argc, argv, 0, 0, args); |
| 268 | |
| 269 | args->trace_path = args->args[0]; |
| 270 | const char *trace_type_str = args->args[1]; |
| 271 | |
| 272 | if (args->ofilepath[0] == '\0') { |
| 273 | char *trace_filename = rindex(args->trace_path, '/'); |
| 274 | snprintf(args->ofilepath, OFILEPATH_LEN, "%s", |
| 275 | trace_filename == NULL ? args->trace_path : trace_filename + 1); |
| 276 | } |
| 277 | |
| 278 | args->reader = create_reader(trace_type_str, args->trace_path, |
| 279 | args->trace_type_params, args->n_req, false, 1); |
| 280 | } |
| 281 | |
| 282 | void free_arg(struct arguments *args) { close_reader(args->reader); } |
| 283 |
no test coverage detected