WebDisk_C/args_parser.h

49 lines
1.3 KiB
C

#pragma once
#include <getopt.h>
#include <string.h>
void print_help(const char *progname) {
printf("Использование: %s [опции]\n", progname);
printf(" -h, --help показать это сообщение\n");
printf(" -r, --recursion N указать глубину json\n");
printf(" -j, --json вывод в виде json\n");
printf(" -d, --directory путь для сканируемой директории\n");
}
void args_pars(int* argc, char *argv[]){
const struct option long_options[] = {
{"help", no_argument, 0, 'h'},
{"recursion", required_argument, 0, 'r'},
{"json", no_argument, 0, 'j'},
{"directory", required_argument, 0, 'd'},
{0, 0, 0, 0}
};
int opt;
while ((opt = getopt_long(*argc, argv, "hr:d:j", long_options, NULL)) != -1) {
switch (opt) {
case 'h':
print_help(argv[0]);
exit(0);
break;
case 'd':
opts.dir = optarg;
break;
case 'r':
opts.recursion = atoi(optarg);
break;
case 'j':
opts.json = 1;
break;
default:
print_help(argv[0]);
exit(1);
}
}
}