#define ARGS_IMPLEMENTATION #include "../args.h" #include void args_add_bool(args_t *args, const char *name, const char *alt_name, const char *help) { args_desc_t desc = {name, alt_name}; desc.help = help; desc.store_value = "1"; desc.default_value = "0"; args_add(args, desc); } void args_add_nargs(args_t *args, const char *name, const char *alt_name, const char *nargs, const char *help) { args_desc_t desc = {name, alt_name}; desc.nargs = nargs; desc.help = help; args_add(args, desc); } int main(int argc, char **argv) { args_t args = { .program = argv[0], .description = (char *)"this program does very cool things on many files and outputs it somewhere", .epilogue = (char *)"it also shows cool epilogue text in it's help", }; args_add_nargs(&args, "filenames", NULL, "+", "list of filenames to process"); args_add_nargs(&args, "--output", "-o", "?", "path to the folder where output will be gathered"); args_add_bool(&args, "--force", "-f", "force the processing"); args_add_bool(&args, "--recursive", "-r", "apply recursively to files in current directory"); args_add_bool(&args, "--help", "-h", "show this help window"); args_parse(&args, argc, argv); const char **filenames = args_get(&args, "filenames"); const char **output = args_get(&args, "--output"); int force = atoi(args_get(&args, "-f")[0]); int recursive = atoi(args_get(&args, "--recursive")[0]); int help = atoi(args_get(&args, "--help")[0]); for (int i = 0; filenames[i]; i += 1) { // } if (help) { args_print_help(&args); return 0; } // .. (void)filenames; (void)output; (void)force; (void)recursive; args_free(&args); }