From: Andre Noll Date: Mon, 21 Jun 2010 14:29:20 +0000 (+0200) Subject: gsu: Add gsu_check_arg_count(). X-Git-Url: http://git.tuebingen.mpg.de/?p=gsu.git;a=commitdiff_plain;h=b3e4039f76f3af4dc2c11642e9edd8309161951c gsu: Add gsu_check_arg_count(). This function is open-coded $MANY times, so it makes sense to have one globally visible function that can be called from all scripts that use gsu. --- diff --git a/funcs/gsu b/funcs/gsu index b80fc91..75e569c 100644 --- a/funcs/gsu +++ b/funcs/gsu @@ -14,6 +14,7 @@ E_GSU_BAD_CONFIG_VAR invalid config variable E_GSU_NEED_VALUE value required but not given E_GSU_BAD_BOOL bad value for boolian option E_GSU_BAD_OPTION_TYPE invalid option type +E_GSU_BAD_ARG_COUNT invalid number of arguments E_NO_DEFAULT missing default value $gsu_errors " @@ -44,6 +45,29 @@ gsu_is_a_number() } export -f gsu_is_a_number +# Usage: gsu_check_arg_count [] +# +# If only ist given, then must equal . +# Otherwise, .. is treated as a range and it is checked +# that lies between and inclusively. +gsu_check_arg_count() +{ + ret=-$E_GSU_BAD_ARG_COUNT + if [[ $# -eq 2 ]]; then # only num1 is given + result="exactly $2 args needed, $1 given" + [[ $1 -ne $2 ]] && return + ret=$GSU_SUCCESS + return + fi + # num1 and num2 given + result="need at least $2 args, $1 given" + [[ $1 -lt $2 ]] && return + result="need at most $3 args, $1 given" + [[ $1 -gt $3 ]] && return + ret=$GSU_SUCCESS +} +export -f gsu_check_arg_count + gsu_short_msg() { echo "$1" 1>&2 @@ -62,6 +86,8 @@ gsu_date_msg() } export -f gsu_date_msg + + _gsu_banner_msg() { local txt="*** $_gsu_self --"