These are not meant to be called from elsewhere, so mark them with an
underscore. Also fix the indentation of the com_help() code.
- local txt="*** $_gsu_self --"
+ local txt="### $_gsu_self --"
if test -z "$gsu_banner_txt"; then
txt="$txt set \$gsu_banner_txt to customize this message"
else
txt="$txt $gsu_banner_txt"
fi
if test -z "$gsu_banner_txt"; then
txt="$txt set \$gsu_banner_txt to customize this message"
else
txt="$txt $gsu_banner_txt"
fi
- gsu_short_msg "$txt ***"
+ gsu_short_msg "$txt ###"
}
export -f _gsu_banner_msg
}
export -f _gsu_banner_msg
- gsu_short_msg "Usage: $_gsu_self command [options]"
+ gsu_short_msg "# Usage: $_gsu_self command [options]"
Print out a list of all cmt config variables, together with their current value
and the default value."
Print out a list of all cmt config variables, together with their current value
and the default value."
export gsu_man_txt="
Print the manual.
Usage: man"
export gsu_man_txt="
Print the manual.
Usage: man"
{
local equal_signs="=================================================="
local minus_signs="--------------------------------------------------"
{
local equal_signs="=================================================="
local minus_signs="--------------------------------------------------"
export gsu_help_txt="
Print online help.
export gsu_help_txt="
Print online help.
Without arguments, print the list of available commands. Otherwise,
print the help text for the given command."
Without arguments, print the list of available commands. Otherwise,
print the help text for the given command."
{
local a b
if test -z "$1"; then
_gsu_banner_msg 2>&1
_gsu_usage 2>&1
{
local a b
if test -z "$1"; then
_gsu_banner_msg 2>&1
_gsu_usage 2>&1
- # sed is magic, baby
- (printf "com_help()\n$gsu_help_txt" | head -n 4; echo "--"
- printf "com_man()\n$gsu_man_txt" | head -n 4; echo "--"
- printf "com_prefs()\n$gsu_prefs_txt" | head -n 4; echo "--"
-
- grep -A 2 "^com_\([a-zA-Z_0-9]\+\)()" $0) \
- | grep -v -- '--' \
+ {
+ printf "com_help()\n$gsu_help_txt" | head -n 4; echo "--"
+ printf "com_man()\n$gsu_man_txt" | head -n 4; echo "--"
+ printf "com_prefs()\n$gsu_prefs_txt" | head -n 4; echo "--"
+ grep -A 2 "^com_\([a-zA-Z_0-9]\+\)()" $0
+ } | grep -v -- '--' \
| sed -e '/^com_\([a-zA-Z_0-9]\+\)()/bs' \
-e 'H;$!d;x;s/\n//g;b' \
-e :s \
| sed -e '/^com_\([a-zA-Z_0-9]\+\)()/bs' \
-e 'H;$!d;x;s/\n//g;b' \
-e :s \
- echo "Try $_gsu_self help <command> for info on <command>."
+ echo "# Try $_gsu_self help <command> for info on <command>."
ret=$GSU_SUCCESS
return
fi
ret=$GSU_SUCCESS
return
fi
result="$1"
ret=-$E_GSU_BAD_COMMAND
}
result="$1"
ret=-$E_GSU_BAD_COMMAND
}
# internal gsu function that syntactically checks the gsu_options array
# for errors and parses the config file.
# internal gsu function that syntactically checks the gsu_options array
# for errors and parses the config file.
+ # check internal commands
+ if [[ "$arg" = "help" || "$arg" = "man" || "$arg" = "prefs" ]]; then
+ _com_$arg "$@"
+ if [[ "$ret" -lt 0 ]]; then
+ gsu_err_msg
+ exit 1
+ fi
+ exit 0
+ fi
+
+ # external commands
for i in $gsu_cmds; do
if test "$arg" = "$i"; then
com_$arg "$@"
for i in $gsu_cmds; do
if test "$arg" = "$i"; then
com_$arg "$@"
ret=-$E_GSU_BAD_COMMAND
result="$arg"
gsu_err_msg
ret=-$E_GSU_BAD_COMMAND
result="$arg"
gsu_err_msg