Ejemplo n.º 1
0
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;

}
Ejemplo n.º 2
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;
}