if [[ "$(type -t _gsu_setup)" != "function" ]]; then
gsu_dir=${gsu_dir:-${BASH_SOURCE[0]%/*}}
- . $gsu_dir/common || exit 1
+ . "$gsu_dir/common" || exit 1
_gsu_setup
fi
# otherwise delete it
d
- ' $0
+ ' "$0"
} | sort | tr '\n' ' ')"
}
printf "# optional"
;;
esac
- printf " $option_type: $description"
+ printf "%s: %s" "$option_type" "$description"
if [[ "$required" != "yes" && "$required" != "true" ]]; then
- printf " [$default_value]"
+ printf " [%s]" "$default_value"
fi
echo
[[ -n "$help_text" ]] && sed -e '/^[ ]*$/d; s/^[ ]*/# /g' <<< "$help_text"
- printf "$name=$val"
+ printf "%s=%s" "$name" "$val"
[[ "$val" == "$default_value" ]] && printf " # default"
echo
done
echo "${equal_signs:0:${#gsu_name} + ${#gsu_banner_txt} + 16}"
echo
- sed -e '1,/^#\{70,\}/d' -e '/^#\{70,\}/,$d' $0 -e 's/^# *//'
+ sed -e '1,/^#\{70,\}/d' -e '/^#\{70,\}/,$d' "$0" -e 's/^# *//'
echo "----"
echo
echo "$gsu_name usage"
echo "${minus_signs:0:$num}"
echo "$com"
echo "${minus_signs:0:$num}"
- $0 help $com
+ "$0" help "$com"
echo
done
} | $pager
gsu_short_msg "### $gsu_name -- $gsu_banner_txt ###"
_gsu_usage 2>&1
{
- 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 "--"
- printf "com_complete()\n$_gsu_complete_txt" | head -n 4; echo "--"
- grep -EA 2 "$ere" $0
+ printf "com_help()\n%s" "$_gsu_help_txt" | head -n 4; echo "--"
+ printf "com_man()\n%s" "$_gsu_man_txt" | head -n 4; echo "--"
+ printf "com_prefs()\n%s" "$_gsu_prefs_txt" | head -n 4; echo "--"
+ printf "com_complete()\n%s" "$_gsu_complete_txt" | head -n 4; echo "--"
+ grep -EA 2 "$ere" "$0"
} | grep -v -- '--' \
| sed -En "/$ere/"'!d
# remove everything but the command name
ret=$GSU_SUCCESS
_gsu_get_command_regex "$1"
ere="$result"
- if ! grep -Eq "$ere" $0; then
+ if ! grep -Eq "$ere" "$0"; then
_gsu_print_available_commands
result="$1"
ret=-$E_GSU_BAD_COMMAND
:p
p
}
- ' $0
+ ' "$0"
}
complete_help()
words=("$@")
cmd="${words[1]}"
ret=$GSU_SUCCESS # It's not an error if no completer was defined
- [[ "$(type -t complete_$cmd)" != "function" ]] && return
- complete_$cmd "$cword" "${words[@]}"
+ [[ "$(type -t "complete_$cmd")" != "function" ]] && return
+ "complete_$cmd" "$cword" "${words[@]}"
# ignore errors, they would only clutter the completion output
ret=$GSU_SUCCESS
}
opt="${opts:$i:1}"
[[ "${opts:$(($i + 1)):1}" != ":" ]] && continue
let i++
- [[ "$prev" != "-$opt" ]] && continue
+ [[ ! "$prev" =~ ^-.*$opt$ ]] && continue
result="$opt"
return
done
fi
arg="$1"
shift
- if [[ "$(type -t com_$arg)" == 'function' ]]; then
- com_$arg "$@"
+ if [[ "$(type -t "com_$arg")" == 'function' ]]; then
+ "com_$arg" "$@"
if (("$ret" < 0)); then
gsu_err_msg
exit 1