Take all arguments into account for azw cmd name

This commit is contained in:
T. R. Bernstein
2024-07-02 22:32:55 +02:00
committed by T. R. Bernstein
parent 056eebdf41
commit d05cd0d635

34
bin/azw
View File

@@ -2,32 +2,36 @@
# vi: set ft=zsh tw=80 ts=2 # vi: set ft=zsh tw=80 ts=2
autoload -w zshlib autoload -w zshlib
function dispatchToExtern() { function buildExternCommandName() {
local cmdName="$1" cmdName="azw-$1"
whence azw-$cmdName &> /dev/null || { shift
lop -- -e "Unknown command $cmdName." while ! whence $cmdName &> /dev/null; do
exit 10 if [[ $# -gt 0 ]]; then
cmdName="${cmdName}_${1}"
shift
else
lop -- -e "Unknown command $@."
return 10
fi
done
} }
azw-$cmdName "$@"
function dispatchToExtern() {
local cmdName=
buildExternCommandName "$@" || return $?
$cmdName "$@"
} }
function dispatchCommand() { function dispatchCommand() {
local cmdName="$1" local cmdName="$1"
case $cmdName in case $cmdName in
*) *)
dispatchToExtern $cmdName dispatchToExtern "$@"
;; ;;
esac esac
} }
function main() {
local cmdName="$1"
[[ $# -gt 1 ]] && shift
dispatchCommand $cmdName
}
if [[ "${ZSH_EVAL_CONTEXT}" == toplevel || "${ZSH_EVAL_CONTEXT}" == cmdarg ]]; then if [[ "${ZSH_EVAL_CONTEXT}" == toplevel || "${ZSH_EVAL_CONTEXT}" == cmdarg ]]; then
_DIR="${0:A:h}" _DIR="${0:A:h}"
main "$@" dispatchCommand "$@"
fi fi