#!/bin/zsh -l # vim: ft=zsh noet ts=4 sts=4 sw=4 if [[ $0:t == run && $0:a:h:t == log ]]; then zsv_mode=log zsv_dir=$0:a:h:h elif [[ $0:a:h:t == control ]]; then zsv_mode=$0:t zsv_dir=$0:a:h:h else zsv_mode=$0:t zsv_dir=$0:a:h fi autoload -Uz zsv_config; zsv_config zsv_parse $zsv_dir:t zsv_eval (( ${flags[X]} )) && set -x if [[ -n ${zsv_hooks[$zsv_mode]} ]]; then for hook in ${=zsv_hooks}; do (($+functions[$hook])) || autoload -Uz $hook $hook done fi #print -rl handlers: ${(kv)handler} if (( ${+handler[$zsv_mode]} )); then runf=$handler[$zsv_mode] else runf=$zsv_default_handler[$zsv_mode] fi [[ -z $runf ]] && exit 0 (($+functions[$runf])) || autoload -Uz $runf $runf exit $?