Take all arguments into account for azw cmd name
This commit is contained in:
committed by
T. R. Bernstein
parent
056eebdf41
commit
d05cd0d635
34
bin/azw
34
bin/azw
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user