int parse_args(int argc, char **argv) { int arg_verbosity = 0; int count; if (argc > 1) { for (count = 1; count < argc; count++) { log_debug("Argument received argv[%d] = %s", count, argv[count]); if (strcmp(argv[count], "-v") == 0) { arg_verbosity++; } else if (strcmp(argv[count], "-i") == 0) { count++; strncpy(arg_inverter_mac, argv[count], 19); } } if (arg_verbosity == 1) { logging_set_loglevel(logger, ll_verbose); } else if (arg_verbosity == 2) { logging_set_loglevel(logger, ll_debug); } if (strlen(arg_inverter_mac) != 17) { printf("Wrong mac!\n\n"); print_help(); exit(EXIT_FAILURE); } } else { print_help(); exit(EXIT_FAILURE); } return 0; }
int parse_args(int argc, char **argv) { int arg_help = 0; int arg_verbosity = 0; int count; if (argc > 1) { for (count = 1; count < argc; count++) { char *argument = argv[count]; size_t lenght = strlen(argv[count]); if (lenght < 2 || argument[0] != '-') { fprintf(stderr, "Unknown argument \"%s\"\n\n", argument); print_help(); exit(EXIT_FAILURE); } for (int i = 1; i < lenght; ++i) { if (argument[i] == 'h') { arg_help = 1; } else if (argument[i] == 'v') { arg_verbosity++; } else if (argument[i] == 'i') { count++; strncpy(arg_inverter_mac, argv[count], 19); } else { fprintf(stderr, "Unknown argument \"%c\"\n\n", argument[i]); print_help(); exit(EXIT_FAILURE); } } } if (arg_help == 1) { print_help(); exit(EXIT_SUCCESS); } if (arg_verbosity == 1) { logging_set_loglevel(logger, ll_verbose); } else if (arg_verbosity == 2) { logging_set_loglevel(logger, ll_debug); } else if (arg_verbosity > 2) { logging_set_loglevel(logger, ll_trace); } if (strlen(arg_inverter_mac) != 17) { fprintf(stderr, "Invalid invertor mac %s!\n\n", arg_inverter_mac); print_help(); exit(EXIT_FAILURE); } } else { print_help(); exit(EXIT_FAILURE); } return 0; }