X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=subcommand;h=6011ee68aad6b88103455167ea129008da1ec792;hb=d0aaa237127d4466766d1aa92e62f4466c2e908d;hp=198ce164f5595ec3fd607b394b28d7ec99a9f349;hpb=de1b465459cce24580fc979a9448fb0f71245c11;p=gsu.git diff --git a/subcommand b/subcommand index 198ce16..6011ee6 100644 --- a/subcommand +++ b/subcommand @@ -100,7 +100,8 @@ If -e is given, the config file is opened with the default editor. Without options, the command prints out a list of all config variables, together with their current value and the default value. " -_com_prefs() + +com_prefs() { local i conf="${gsu_config_file:=${HOME:-}/.$gsu_name.rc}" @@ -158,7 +159,8 @@ Print the manual. Usage: man" -_com_man() + +com_man() { local equal_signs="==================================================" local minus_signs="--------------------------------------------------" @@ -216,7 +218,7 @@ written to stdout. This can be used from the completion function of the subcommand. " -_com_help() +com_help() { local a b ere tab=' ' @@ -398,7 +400,7 @@ gsu_getopts() ret=$GSU_SUCCESS } -_com_complete() +com_complete() { local cmd n cword local -a words @@ -537,29 +539,14 @@ gsu() fi arg="$1" shift - # check internal commands - if [[ "$arg" = "help" || "$arg" = "man" || "$arg" = "prefs" || "$arg" = "complete" ]]; then - _com_$arg "$@" + if [[ "$(type -t com_$arg)" == 'function' ]]; then + com_$arg "$@" if (("$ret" < 0)); then gsu_err_msg exit 1 fi exit 0 fi - - # external commands - for i in $gsu_cmds; do - if test "$arg" = "$i"; then - ret=$GSU_SUCCESS - com_$arg "$@" - if (("$ret" < 0)); then - gsu_err_msg - exit 1 - fi - exit 0 - fi - done - ret=-$E_GSU_BAD_COMMAND result="$arg" gsu_err_msg