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
"
}
export -f gsu_is_a_number
+# Usage: gsu_check_arg_count <num_given> <num1> [<num2>]
+#
+# If only <num1> ist given, then <num_given> must equal <num1>.
+# Otherwise, <num1>..<num2> is treated as a range and it is checked
+# that <num_given> lies between <num1> and <num2> 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
}
export -f gsu_date_msg
+
+
_gsu_banner_msg()
{
local txt="*** $_gsu_self --"