38 lines
647 B
Bash
Executable File
38 lines
647 B
Bash
Executable File
#!/usr/bin/env zsh
|
|
# vi: set ft=zsh tw=80 ts=2
|
|
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() {
|
|
local cmdName=
|
|
buildExternCommandName "$@" || return $?
|
|
$cmdName "$@"
|
|
}
|
|
|
|
function dispatchCommand() {
|
|
local cmdName="$1"
|
|
case $cmdName in
|
|
*)
|
|
dispatchToExtern "$@"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
if [[ "${ZSH_EVAL_CONTEXT}" == toplevel || "${ZSH_EVAL_CONTEXT}" == cmdarg ]]; then
|
|
_DIR="${0:A:h}"
|
|
dispatchCommand "$@"
|
|
fi
|