From: Andre Noll Date: Sat, 27 Sep 2014 22:59:43 +0000 (+0000) Subject: Merge branch 't/default_gsu_dir' X-Git-Url: http://git.tuebingen.mpg.de/?a=commitdiff_plain;h=545f2b7b22c800fd4645e5784cd35a318d2e60d6;hp=8d89aa241a5199b0a25edcf0e56da08c64aa4014;p=gsu.git Merge branch 't/default_gsu_dir' Cooking for almost a month. * t/default_gsu_dir: Unify gsu_dir handling. --- diff --git a/common b/common index bd8276b..eaa5751 100644 --- a/common +++ b/common @@ -35,7 +35,7 @@ EOF gsu_is_a_number() { result="$1" - if test "$1" -eq "$1" &> /dev/null; then + if (("$1" == "$1")) &> /dev/null; then ret=$GSU_SUCCESS else ret=-$E_GSU_NOT_A_NUMBER @@ -49,12 +49,12 @@ gsu_short_msg() gsu_msg() { - gsu_short_msg "$_gsu_self: $1" + gsu_short_msg "$gsu_name: $1" } gsu_date_msg() { - gsu_short_msg "$_gsu_self $(date): $1" + gsu_short_msg "$gsu_name $(date): $1" } gsu_err_msg() @@ -62,11 +62,11 @@ gsu_err_msg() local txt="$result" err gsu_is_a_number "$ret" - if test $ret -lt 0; then + if (($ret < 0)); then gsu_msg "unknown error ($ret:$txt)" exit 1 fi - if test $result -ge 0; then + if (($result >= 0)); then gsu_msg "unknown error ($result:$txt)" exit 1 fi @@ -81,8 +81,7 @@ gsu_err_msg() _gsu_setup() { - _gsu_self="$(basename $0)" - gsu_name="${gsu_name:=$_gsu_self}" + gsu_name="${gsu_name:-${0##*/}}" gsu_config_var_prefix="${gsu_config_var_prefix:=$gsu_name}" gsu_banner_txt="${gsu_banner_txt:-set \$gsu_banner_txt to customize this message}" _gsu_init_errors diff --git a/config b/config index 7667cf5..0663e34 100644 --- a/config +++ b/config @@ -27,7 +27,7 @@ gsu_check_options() 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; - [[ $? -ne 0 ]] && return + (($? != 0)) && return eval orig_val='"'\$orig_${gsu_config_var_prefix}_$name'"' if [[ -z "$orig_val" ]]; then @@ -57,7 +57,7 @@ gsu_check_options() ;; num) gsu_is_a_number "$val" - [[ $ret -lt 0 ]] && return + (($ret < 0)) && return ;; *) ret=-$E_GSU_BAD_OPTION_TYPE diff --git a/subcommand b/subcommand index bab8ded..95e0ba9 100644 --- a/subcommand +++ b/subcommand @@ -9,7 +9,7 @@ fi _gsu_usage() { - gsu_short_msg "# Usage: $_gsu_self command [options]" + gsu_short_msg "# Usage: $gsu_name command [options]" } # Return an extended regular expression to match against $0. @@ -111,11 +111,11 @@ _com_prefs() ret=-$E_GSU_MKDIR result="${conf%/*}" mkdir -p "$result" - [[ $? -ne 0 ]] && return + (($? != 0)) && return ret=-$E_GSU_EDITOR result="${EDITOR:-vi}" "$result" "$conf" - [[ $? -ne 0 ]] && return + (($? != 0)) && return ret=$GSU_SUCCESS return fi @@ -161,15 +161,15 @@ _com_man() local minus_signs="--------------------------------------------------" local com num - echo "$_gsu_self (_${gsu_banner_txt}_) manual" - echo "${equal_signs:0:${#_gsu_self} + ${#gsu_banner_txt} + 16}" + echo "$gsu_name (_${gsu_banner_txt}_) manual" + echo "${equal_signs:0:${#gsu_name} + ${#gsu_banner_txt} + 16}" echo sed -e '1,/^#\{70,\}/d' -e '/^#\{70,\}/,$d' $0 -e 's/^# *//' echo "----" echo - echo "$_gsu_self usage" - echo "${minus_signs:0:${#_gsu_self} + 6}" + echo "$gsu_name usage" + echo "${minus_signs:0:${#gsu_name} + 6}" printf "\t" _gsu_usage 2>&1 echo "Each command has its own set of options as described below." @@ -181,9 +181,7 @@ _com_man() _gsu_available_commands for com in $result; do num=${#com} - if test $num -lt 4; then - num=4 - fi + (($num < 4)) && num=4 echo "${minus_signs:0:$num}" echo "$com" echo "${minus_signs:0:$num}" @@ -193,11 +191,6 @@ _com_man() ret=$GSU_SUCCESS } -_gsu_banner_msg() -{ - gsu_short_msg "### $_gsu_self -- ###" -} - export gsu_help_txt=" Print online help. @@ -228,7 +221,7 @@ _com_help() ere="$result" if (($# == 0)); then - _gsu_banner_msg 2>&1 + gsu_short_msg "### $gsu_name -- $gsu_banner_txt ###" _gsu_usage 2>&1 { printf "com_help()\n$gsu_help_txt" | head -n 4; echo "--" @@ -258,7 +251,7 @@ _com_help() # and print the sucker p' echo - echo "# Try $_gsu_self help for info on ." + echo "# Try $gsu_name help for info on ." ret=$GSU_SUCCESS return fi @@ -338,7 +331,7 @@ gsu_getopts() ' gsu_check_arg_count $# 1 1 - if [[ $ret -lt 0 ]]; then + if (($ret < 0)); then gsu_err_msg exit 1 fi @@ -534,7 +527,7 @@ gsu() local i _gsu_available_commands gsu_cmds="$result" - if test $# -eq 0; then + if (($# == 0)); then _gsu_usage _gsu_print_available_commands exit 1 @@ -544,7 +537,7 @@ gsu() # check internal commands if [[ "$arg" = "help" || "$arg" = "man" || "$arg" = "prefs" || "$arg" = "complete" ]]; then _com_$arg "$@" - if [[ "$ret" -lt 0 ]]; then + if (("$ret" < 0)); then gsu_err_msg exit 1 fi @@ -555,7 +548,7 @@ gsu() for i in $gsu_cmds; do if test "$arg" = "$i"; then com_$arg "$@" - if [[ "$ret" -lt 0 ]]; then + if (("$ret" < 0)); then gsu_err_msg exit 1 fi @@ -586,16 +579,16 @@ gsu() gsu_check_arg_count() { ret=-$E_GSU_BAD_ARG_COUNT - if [[ $# -eq 2 ]]; then # only num1 is given + if (($# == 2)); then # only num1 is given result="at least $2 args required, $1 given" - [[ $1 -lt $2 ]] && return + (($1 < $2)) && return ret=$GSU_SUCCESS return fi # num1 and num2 given result="need at least $2 args, $1 given" - [[ $1 -lt $2 ]] && return + (($1 < $2)) && return result="need at most $3 args, $1 given" - [[ $1 -gt $3 ]] && return + (($1 > $3)) && return ret=$GSU_SUCCESS }