diff options
author | P. J. McDermott <pjm@nac.net> | 2013-10-12 09:53:48 (EDT) |
---|---|---|
committer | P. J. McDermott <pjm@nac.net> | 2013-10-12 09:53:48 (EDT) |
commit | 14510e8e8055636a93a8cf3c302f89bd464d3ea3 (patch) | |
tree | f6e5ecc110ce07cf238bcc8c95b1fcf0ba1b1196 /lib | |
parent | 19436dbe4282d50606cedbbc89d6d10ec56c4937 (diff) |
Print option arguments in help output.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/cmd.sh | 30 | ||||
-rw-r--r-- | lib/cmd/help.sh | 4 |
2 files changed, 31 insertions, 3 deletions
@@ -37,6 +37,36 @@ load_cmds() done } +print_opt_summaries() +{ + local optstring="${1}" + local padding= + local opt= + local opt_out= + local summary= + + padding="$(printf '%24s' '')" + for opt in $(printf '%s' "${optstring}" | sed 's/\([a-zA-Z0-9]\)/ \1/g') + do + if [ ${#opt} -eq 1 ]; then + # No argument expected. + opt_out="-${opt}" + else + # Argument expected. + opt="${opt%?}" + opt_out="-${opt} $(get_msg "opt_${opt}_arg")" + fi + if [ ${#opt_out} -gt 20 ]; then + printf ' %s\n%24s' "${opt_out}" '' + else + printf ' %-20s ' "${opt_out}" + fi + summary="$(get_msg "opt_${opt}_summary")" + printf '%s\n' "${summary}" | fold -s -w 56 | \ + sed "2,\$s/^/${padding}/;" + done +} + print_cmd_summaries() { local padding= diff --git a/lib/cmd/help.sh b/lib/cmd/help.sh index 733e9ed..e186663 100644 --- a/lib/cmd/help.sh +++ b/lib/cmd/help.sh @@ -33,9 +33,7 @@ cmd_help_main() printf "$(get_msg 'cmd_help_head')\n\n" "${0}" printf "$(get_msg 'cmd_help_opts_head')\n" - for opt in h V b; do - printf ' -%c %s\n' "${opt}" "$(get_msg "cmd_help_opt_${opt}")" - done + print_opt_summaries 'hVb:' printf '\n' printf "$(get_msg 'cmd_help_summary_head')\n" |