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 buildExternCommandName() {
cmdName="azw-$1"
shift
while ! whence $cmdName &> /dev/null; do
if [[ $# -gt 0 ]]; then
cmdName="${cmdName}_${1}"
shift
else
lop -- -e "Unknown command $@."
return 10
fi
done
}
function dispatchToExtern() { function dispatchToExtern() {
local cmdName="$1" local cmdName=
whence azw-$cmdName &> /dev/null || { buildExternCommandName "$@" || return $?
lop -- -e "Unknown command $cmdName." $cmdName "$@"
exit 10
}
azw-$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