]> git.tuebingen.mpg.de Git - gsu.git/blobdiff - subcommand
Convert README to markdown format.
[gsu.git] / subcommand
index 05860f68395f67ffd3e9a51a60e48eb857a9cca8..261e35f5e39b6f377529c24a136427106d6301cb 100644 (file)
@@ -1,9 +1,11 @@
 #!/bin/bash
-# (C) 2006-2011 Andre Noll
+# Copyright (C) 2006 Andre Noll
+# Licensed under the LGPL, version 3. See COPYING and COPYING.LESSER.
 
-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()
@@ -49,25 +51,26 @@ _gsu_available_commands()
 }
 
 _gsu_print_available_commands()
-{(
-       local i count=0
-       gsu_short_msg "Available commands:"
-       for i in $gsu_cmds; do
-               printf "$i"
-               count=$(($count + 1))
-               if test $(($count % 4)) -eq 0; then
-                       echo
+{
+       local cmd
+       local -i count=0
+
+       printf 'Available commands:\n'
+       for cmd in $gsu_cmds; do
+               printf '%s' "$cmd"
+               let ++count
+               if (($count % 4)); then
+                       printf '\t'
+                       ((${#cmd} < 8)) && printf '\t'
                else
-                       printf "\t"
-                       if test ${#i} -lt 8; then
-                               printf "\t"
-                       fi
+                       printf '\n'
                fi
        done
-       echo
-) 2>&1
+       printf '\n'
 }
 
+# Print all options of the given optstring to stdout if the word in the current
+# command line begins with a hyphen character.
 gsu_complete_options()
 {
        local opts="$1" cword="$2" cur opt
@@ -314,7 +317,7 @@ complete_help()
 # Aborts on programming errors such as missing or invalid option string.  On
 # success $result contains shell code that can be eval'ed. For each defined
 # option x, the local variable o_x will be created when calling eval "$result".
-# o_x contains true/false for options without argument and either the emtpy
+# o_x contains true/false for options without argument and either the empty
 # string or the given argument for options that take an argument.
 #
 # Example:
@@ -524,7 +527,6 @@ gsu_get_unnamed_arg_num()
 gsu()
 {
        local i
-       _gsu_setup
        _gsu_available_commands
        gsu_cmds="$result"
        if (($# == 0)); then
@@ -547,6 +549,7 @@ gsu()
        # 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
@@ -574,8 +577,7 @@ gsu()
 #      0 0 no argument allowed
 #      1 1 exactly one argument required
 #      0 2 at most two arguments admissible
-#      2   at least two arguments reqired
-#
+#      2   at least two arguments required
 gsu_check_arg_count()
 {
        ret=-$E_GSU_BAD_ARG_COUNT