diff options
Diffstat (limited to 'lib/cmd.sh')
-rw-r--r-- | lib/cmd.sh | 129 |
1 files changed, 0 insertions, 129 deletions
diff --git a/lib/cmd.sh b/lib/cmd.sh deleted file mode 100644 index 208e2fa..0000000 --- a/lib/cmd.sh +++ /dev/null @@ -1,129 +0,0 @@ -# Command-related functions -# -# Copyright (C) 2013 Patrick "P. J." McDermott -# -# This file is part of the ProteanOS Development Kit. -# -# The ProteanOS Development Kit is free software: you can redistribute -# it and/or modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# The ProteanOS Development Kit is distributed in the hope that it -# will be useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with the ProteanOS Development Kit. If not, see -# <http://www.gnu.org/licenses/>. - -[ "x${_CMD_SM+set}" = 'xset' ] && return 0 -_CMD_SM=1 - -use output -use locale - -CMDS='@cmds@' - -running_cmd= -running_cmd_clean= - -load_cmds() -{ - local cmd= - - for cmd in ${CMDS}; do - use "cmd/${cmd}" - done -} - -print_opt_summaries() -{ - 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= - local cmd= - local cmd_clean= - local summary= - - padding="$(printf '%24s' '')" - for cmd in ${CMDS}; do - if [ ${#cmd} -gt 20 ]; then - printf ' %s\n%24s' "${cmd}" '' - else - printf ' %-20s ' "${cmd}" - fi - cmd_clean="$(printf '%s' "${cmd}" | \ - tr '[A-Z]' '[a-z]' | tr -C '[a-z0-9_]' '_')" - summary="$(get_msg "cmd_${cmd_clean}_summary")" - printf '%s\n' "${summary}" | fold -s -w 56 | \ - sed "2,\$s/^/${padding}/;" - done -} - -print_cmd_usage() -{ - local cmd="${1}" - local cmd_clean= - local usage= - - cmd_clean="$(printf '%s' "${cmd}" | \ - tr '[A-Z]' '[a-z]' | tr -C '[a-z0-9_]' '_')" - usage="$(get_msg "cmd_${cmd_clean}_usage")" - - printf "$(get_msg 'cmd_usage')\n" "${0}" "${cmd}" "${usage}" -} - -is_cmd() -{ - local cmd="${1}" - - [ "x$(printf '%s\n' ${CMDS} | grep "^${cmd}$")" = "x${cmd}" ] -} - -run_cmd() -{ - local cmd="${1}" - local cmd_clean= - shift - - cmd_clean="$(printf '%s' "${cmd}" | \ - tr '[A-Z]' '[a-z]' | tr -C '[a-z0-9_]' '_')" - if is_cmd "${cmd}"; then - running_cmd="${cmd}" - running_cmd_clean="${cmd_clean}" - "cmd_${cmd_clean}_main" "${@}" - running_cmd='' - running_cmd_clean='' - else - error 1 "$(get_msg 'cmd_not_found')" "${cmd}" - fi -} |