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/?p=gsu.git;a=commitdiff_plain;h=545f2b7b22c800fd4645e5784cd35a318d2e60d6;hp=-c Merge branch 't/default_gsu_dir' Cooking for almost a month. * t/default_gsu_dir: Unify gsu_dir handling. --- 545f2b7b22c800fd4645e5784cd35a318d2e60d6 diff --combined config index 59086ed,7667cf5..0663e34 --- a/config +++ b/config @@@ -27,7 -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 +57,7 @@@ ;; num) gsu_is_a_number "$val" - [[ $ret -lt 0 ]] && return + (($ret < 0)) && return ;; *) ret=-$E_GSU_BAD_OPTION_TYPE @@@ -79,7 -79,7 +79,7 @@@ gsu_check_options_or_die( } if [[ "$(type -t _gsu_setup)" != "function" ]]; then - gsu_dir=${gsu_dir:=${HOME:-}/.gsu} + gsu_dir=${gsu_dir:-${BASH_SOURCE[0]%/*}} . $gsu_dir/common || exit 1 _gsu_setup fi diff --combined subcommand index 05860f6,bab8ded..95e0ba9 --- a/subcommand +++ b/subcommand @@@ -1,14 -1,15 +1,15 @@@ #!/bin/bash # (C) 2006-2011 Andre Noll - if [[ $(type -t gsu_is_a_number) != "function" ]]; then - GSU_DIR=${GSU_DIR:=${HOME-}/.gsu} - . $GSU_DIR/common || exit 1 + if [[ "$(type -t _gsu_setup)" != "function" ]]; then + gsu_dir=${gsu_dir:-${BASH_SOURCE[0]%/*}} + . $gsu_dir/common || exit 1 + _gsu_setup 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. @@@ -110,11 -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 @@@ -160,15 -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." @@@ -180,7 -181,9 +181,7 @@@ _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}" @@@ -190,6 -193,11 +191,6 @@@ ret=$GSU_SUCCESS } -_gsu_banner_msg() -{ - gsu_short_msg "### $_gsu_self -- ###" -} - export gsu_help_txt=" Print online help. @@@ -220,7 -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 "--" @@@ -250,7 -258,7 +251,7 @@@ # 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 @@@ -330,7 -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 @@@ -524,10 -532,9 +525,9 @@@ gsu_get_unnamed_arg_num( gsu() { local i - _gsu_setup _gsu_available_commands gsu_cmds="$result" - if test $# -eq 0; then + if (($# == 0)); then _gsu_usage _gsu_print_available_commands exit 1 @@@ -537,7 -544,7 +537,7 @@@ # 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 @@@ -548,7 -555,7 +548,7 @@@ 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 @@@ -579,16 -586,16 +579,16 @@@ 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 }