X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=config;h=6152679d623e9b4b7873f9a92ca1c8557c301840;hb=ddf42f9d5b83568bb322b0621c14e906d9cac511;hp=6b3be62f0eceabdf5551accfeddb3a9f3f690f6d;hpb=f66a09d3788d11454ac9723dc897188ccbbf9ed1;p=gsu.git diff --git a/config b/config index 6b3be62..6152679 100644 --- a/config +++ b/config @@ -6,7 +6,7 @@ # file. gsu_check_options() { - local i conf="${gsu_config_file:=${HOME:-}/.$gsu_name.rc}" val orig_val + local i f conf="${gsu_config_file:=${HOME:-}/.$gsu_name.rc}" val orig_val local name option_type default_value required description help_text for ((i=0; i < ${#gsu_options[@]}; i++)); do @@ -15,7 +15,9 @@ gsu_check_options() eval orig_${gsu_config_var_prefix}_$name='"'${val}'"' done - [[ -r "$conf" ]] && source "$conf" + for f in $conf; do + [[ -r "$f" ]] && source "$f" + done for ((i=0; i < ${#gsu_options[@]}; i++)); do name= @@ -31,9 +33,7 @@ gsu_check_options() # only. Moreover it must start with [a-zA-Z]. ret=-$E_GSU_BAD_CONFIG_VAR result="name: '$name'" - # bash's =~ works only for 3.2 and newer, so use grep - echo "$name" | grep '^[a-zA-Z][a-zA-Z_0123456789]*$' &> /dev/null; - (($? != 0)) && return + [[ "$name" =~ ^[a-zA-Z][a-zA-Z_0123456789]*$ ]] || return eval orig_val='"'\$orig_${gsu_config_var_prefix}_$name'"' if [[ -z "$orig_val" ]]; then @@ -63,7 +63,7 @@ gsu_check_options() ;; num) gsu_is_a_number "$val" - (($ret < 0)) && return + ((ret < 0)) && return ;; *) ret=-$E_GSU_BAD_OPTION_TYPE @@ -78,7 +78,7 @@ gsu_check_options() gsu_check_options_or_die() { gsu_check_options - if (($ret < 0)); then + if ((ret < 0)); then gsu_err_msg exit 1 fi @@ -86,6 +86,6 @@ gsu_check_options_or_die() if [[ "$(type -t _gsu_setup)" != "function" ]]; then gsu_dir=${gsu_dir:-${BASH_SOURCE[0]%/*}} - . $gsu_dir/common || exit 1 + . "$gsu_dir/common" || exit 1 _gsu_setup fi