]> git.tuebingen.mpg.de Git - gsu.git/blobdiff - misc/gsu/subcommand
gsu subcommand: Use gsu_getopts.
[gsu.git] / misc / gsu / subcommand
index a688ed5855c60c47e099b723bf8b060487a7669a..911179eb45eb57590dbb0b4f4f484e2ecb86f2c5 100644 (file)
@@ -42,7 +42,7 @@ _gsu_available_commands()
 
 _gsu_print_available_commands()
 {(
-       local i count
+       local i count=0
        gsu_short_msg "Available commands:"
        for i in $gsu_cmds; do
                printf "$i"
@@ -92,7 +92,13 @@ _com_prefs()
 {
        local i conf="${gsu_config_file:=$HOME/.$gsu_name.rc}"
 
-       if [[ "$1" = "-e" ]]; then
+       gsu_getopts "e"
+       eval "$result"
+       (($ret < 0)) && return
+       gsu_check_arg_count $# 0 0
+       (($ret < 0)) && return
+
+       if [[ "$o_e" == "true" ]]; then
                ret=-$E_GSU_MKDIR
                result="${conf%/*}"
                mkdir -p "$result"
@@ -216,7 +222,7 @@ _com_help()
        _gsu_get_command_regex
        ere="$result"
 
-       if test -z "$1"; then
+       if (($# == 0)); then
                _gsu_banner_msg 2>&1
                _gsu_usage 2>&1
                {
@@ -351,21 +357,21 @@ gsu_getopts()
                        exit 1
                esac
        done
-       result="local opt"
+       result="local _gsu_getopts_opt"
        for ((i=0; i < ${#1}; i++)); do
                c1=${1:$i:1}
                c2=${1:$(($i + 1)):1}
-               result+=" o_$c1"
+               result+=" o_$c1="
                if [[ "$c2" = ":" ]]; then
                        let i++
                else
-                       result+="=false"
+                       result+="false"
                fi
        done
        result+="
        OPTIND=1
-       while getopts $1 opt \"\$@\"; do
-               case \"\$opt\" in
+       while getopts $1 _gsu_getopts_opt \"\$@\"; do
+               case \"\$_gsu_getopts_opt\" in
 "
        for ((i=0; i < ${#1}; i++)); do
                c1=${1:$i:1}