From 5a79cd31c48307d18a637271f4a0a13327fd3073 Mon Sep 17 00:00:00 2001 From: Lorenz Kästle <12514511+RincewindsHat@users.noreply.github.com> Date: Wed, 12 Mar 2025 22:15:57 +0100 Subject: Reintroduce positional arguments --- plugins/check_users.c | 47 +++++++++++++++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/plugins/check_users.c b/plugins/check_users.c index 61427f97..b7b7bd24 100644 --- a/plugins/check_users.c +++ b/plugins/check_users.c @@ -200,27 +200,42 @@ check_users_config_wrapper process_arguments(int argc, char **argv) { } } + int option_char = optind; + + if (warning_range == NULL && argc > option_char) { + warning_range = argv[option_char++]; + } + + if (critical_range == NULL && argc > option_char) { + critical_range = argv[option_char++]; + } + // TODO add proper verification for ranges here! + mp_range_parsed tmp; if (warning_range) { - mp_range_parsed tmp = mp_parse_range_string(warning_range); - if (tmp.error == MP_PARSING_SUCCES) { - result.config.thresholds.warning = tmp.range; - result.config.thresholds.warning_is_set = true; - } else { - printf("Failed to parse warning range: %s", warning_range); - exit(STATE_UNKNOWN); - } + tmp = mp_parse_range_string(warning_range); + } else { + tmp = mp_parse_range_string(argv[option_char++]); + } + if (tmp.error == MP_PARSING_SUCCES) { + result.config.thresholds.warning = tmp.range; + result.config.thresholds.warning_is_set = true; + } else { + printf("Failed to parse warning range: %s", warning_range); + exit(STATE_UNKNOWN); } if (critical_range) { - mp_range_parsed tmp = mp_parse_range_string(critical_range); - if (tmp.error == MP_PARSING_SUCCES) { - result.config.thresholds.critical = tmp.range; - result.config.thresholds.critical_is_set = true; - } else { - printf("Failed to parse critical range: %s", critical_range); - exit(STATE_UNKNOWN); - } + tmp = mp_parse_range_string(critical_range); + } else { + tmp = mp_parse_range_string(argv[option_char++]); + } + if (tmp.error == MP_PARSING_SUCCES) { + result.config.thresholds.critical = tmp.range; + result.config.thresholds.critical_is_set = true; + } else { + printf("Failed to parse critical range: %s", critical_range); + exit(STATE_UNKNOWN); } return result; -- cgit v1.2.3-74-g34f1