#include "opts.h" #include #include int opt_silent = 0; int opt_showinfo = 0; int opt_help = 0; int opt_no_use_dir = 0; int opt_pretty_progress = 0; int opt_scriptformat_info = OPT_SCRIPTFORMAT_NONE; char* opt_data_path = NULL; int opts_parse(int argc, char** argv) { int opt; while ((opt = getopt(argc, argv, "pnihsv:f:")) != -1) { switch (opt) { case 'i': opt_showinfo = 1; break; case 'h': opt_help = 1; break; case 's': opt_silent = 1; break; case 'n': opt_no_use_dir = 1; break; case 'p': opt_pretty_progress = 1; break; case 'v': opt_data_path = optarg; break; case 'f': if (strlen(optarg) != 1) return -1; char info_char = optarg[0]; opt_scriptformat_info = OPT_SCRIPTFORMAT_INVALID; for (int i = 0; i < OPT_SCRIPTFORMAT_MAPPING_LEN; i++) { const opt_scriptformat_mapping_t* curr = &OPT_SCRIPTFORMAT_MAPPING[i]; if (info_char == curr->info_char) { opt_scriptformat_info = curr->info; break; } } if (opt_scriptformat_info == OPT_SCRIPTFORMAT_INVALID) return -1; break; default: return -1; } } return 0; }