From b01af8010d1fee00e528af7afe905ee209d8951f Mon Sep 17 00:00:00 2001 From: Jeroen De Meerleer Date: Thu, 1 Jun 2023 16:06:02 +0200 Subject: [PATCH] Refactor check-dummy.sh to add options for warning, critical and unknown status This commit refactors the check-dummy.sh script to include options for warning, critical and unknown status. The script now accepts the following command line arguments: --ok (default), --warning, --critical and --unknown. The exit codes have also been updated to reflect these new statuses. --- check-dummy.sh | 57 +++++++++++++++++++++++++++++++++++++------------- 1 file changed, 42 insertions(+), 15 deletions(-) diff --git a/check-dummy.sh b/check-dummy.sh index 166a239..a76a770 100644 --- a/check-dummy.sh +++ b/check-dummy.sh @@ -3,13 +3,22 @@ # #/ #/ Usage: -#/ check-dummy.sh +#/ check-dummy.sh [--ok|--warning|--critical] #/ -#/ Does not check anything. Always gives OK! +#/ Does not check anything. +#/ +#/ Options: +#/ -o, --ok Trigger a OK status (default) +#/ -w, --warning Trigger a warning +#/ -c, --critical Trigger a critical warning +#/ -u, --unknown Trigger a unknown status #/ #/ #/ Exit Codes: #/ 0 Everything OK +#/ 1 Warning level exceeded +#/ 2 Critical level exceeded +#/ 3 Unknown status #/ Usage() { @@ -18,8 +27,8 @@ Usage() { GetOptions() { # https://stackoverflow.com/a/29754866 - OPTIONS='' - LONGOPTS='' + OPTIONS='owcu' + LONGOPTS='ok,warning,critical,unknown' # -use ! and PIPESTATUS to get exit code with errexit set # -temporarily store output to be able to check for errors @@ -30,7 +39,6 @@ GetOptions() { # e.g. return value is 1 # then getopt has complained about wrong arguments to stdout Usage - exit 2 fi # read getopt's output this way to handle the quoting right: @@ -39,23 +47,42 @@ GetOptions() { # now enjoy the options in order and nicely split until we see -- while true; do case "$1" in + -o|--ok) + rval=0 + rmsg="OK" + shift + ;; + -w|--warning) + rval=1 + rmsg="WARNING" + shift + ;; + -c|--critical) + rval=2 + rmsg="CRITICAL" + shift + ;; + -u|--unknown) + rval=3 + rmsg="UNKNOWN" + shift + ;; --) shift break ;; *) - echo "URL UNKNOWN - ${1} is not a valid parameter" + echo "DUMMY UNKNOWN - ${1} is not a valid parameter" exit 3 ;; esac done - - if [ -z ${1+x} ]; then - echo "URL UNKNOWN - url not given" - exit 3 - else - url=${1} - fi } -echo "DUMMY OK" -exit 0 \ No newline at end of file +script_name=$(basename "${0}") +script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) +rval=0 +rmsg="OK" +GetOptions "$@" + +echo "DUMMY $rmsg" +exit $rval \ No newline at end of file