X-Git-Url: http://git.tuebingen.mpg.de/?p=gsu.git;a=blobdiff_plain;f=funcs%2Fgsu;h=9ee2d72442d4b0694f4c151559c2b383cdf860e0;hp=18b7c13e0774cd62c6d52e2c07670f0fd6709615;hb=7cc3cdb5fc9245ea8654411098c859b6d928be42;hpb=134ad527e42f29531c647a2172e97d78cb87f450 diff --git a/funcs/gsu b/funcs/gsu index 18b7c13..9ee2d72 100644 --- a/funcs/gsu +++ b/funcs/gsu @@ -149,7 +149,7 @@ com_prefs() local name= option_type= default_value= required= local description= help_text= eval "${gsu_options[$i]}" - eval val='"$'${gsu_name}_$name'"' + eval val='"$'${gsu_config_var_prefix}_$name'"' case "$required" in true|yes) printf "# required" @@ -294,6 +294,7 @@ _gsu_check_options() eval "${gsu_options[$i]}" + # Check name. It must be non-empty and consist of [a-zA-Z_0-9] # only. Moreover it must not start with [a-zA-Z]. @@ -318,7 +319,7 @@ _gsu_check_options() return esac - eval ${gsu_name}_$name='"'${val:=$default_value}'"' + eval ${gsu_config_var_prefix}_$name='"'${val:=$default_value}'"' # Check option type. ATM, only num and string are supported # Other types may be added without breaking compatibility @@ -330,7 +331,7 @@ _gsu_check_options() [[ $ret -lt 0 ]] && return ;; *) - ret=-$E_BAD_OPTION_TYPE + ret=-$E_GSU_BAD_OPTION_TYPE result="$name/$option_type" return esac @@ -344,11 +345,15 @@ gsu() local i _gsu_self="$(basename $0)" + gsu_name="${gsu_name:=$_gsu_self}" + gsu_config_var_prefix="${gsu_config_var_prefix:=$gsu_name}" _gsu_init_errors _gsu_check_options if [[ "$ret" -lt 0 ]]; then - gsu_err_msg - exit 1 + if [[ "$1" != "help" && "$1" != "man" && "$1" != "prefs" ]]; then + gsu_err_msg + exit 1 + fi fi _gsu_available_commands gsu_cmds="$result"