# #
###############################################################################
+function hook_dir() {
+ local type=${1}
+
+ echo "${HOOKS_DIR}/${type}s"
+}
+
function hook_exists() {
- local hook=${1}
+ local type=${1}
+ local hook=${2}
- [ -d "${HOOKS_DIR}/${hook}" ] && return ${EXIT_ERROR}
+ local hook_dir=$(hook_dir ${type})
- [ -x "${HOOKS_DIR}/${hook}" ]
+ [ -d "${hook_dir}/${hook}" ] && return ${EXIT_ERROR}
+
+ [ -x "${hook_dir}/${hook}" ]
}
-function hook_port_exists() {
+function hook_exec() {
+ local type=${1}
+ local hook=${2}
+ shift 2
+
+ if ! hook_exists ${type} ${hook}; then
+ error "Hook '${hook}' does not exist."
+ return ${EXIT_ERROR}
+ fi
+
+ ${SHELL} $(hook_dir ${type})/${hook} $@
+}
+
+function config_get_hook() {
+ local config=${1}
+
+ (
+ . ${config}
+ echo "${HOOK}"
+ )
+}
+
+## Wrappers around the hook functions for zones
+
+function hook_zone_exists() {
+ hook_exists zone $@
+}
+
+function hook_zone_port_exists() {
local hook_zone=${1}
local hook_port=${2}
- hook_exists ${hook_zone} || return ${EXIT_ERROR}
+ hook_zone_exists ${hook_zone} || return ${EXIT_ERROR}
- [ -x "${HOOKS_DIR}/${hook_zone}.ports/${hook_port}" ]
+ [ -x "$(hook_dir zone)/${hook_zone}.ports/${hook_port}" ]
}
-function hook_config_exists() {
+function hook_zone_config_exists() {
local hook_zone=${1}
local hook_config=${2}
- hook_exists ${hook_zone} || return ${EXIT_ERROR}
+ hook_zone_exists ${hook_zone} || return ${EXIT_ERROR}
- [ -x "${HOOKS_DIR}/${hook_zone}.configs/${hook_config}" ]
+ [ -x "$(hook_dir zone)/${hook_zone}.configs/${hook_config}" ]
}
-function hook_has_ports() {
+function hook_zone_has_ports() {
local hook=${1}
- [ -d "${HOOKS_DIR}/${hook}.ports" ]
+ [ -d "$(hook_dir zone)/${hook}.ports" ]
}
-function hook_has_configs() {
+function hook_zone_has_configs() {
local hook=${1}
- [ -d "${HOOKS_DIR}/${hook}.configs" ]
+ [ -d "$(hook_dir zone)/${hook}.configs" ]
}
-function hook_exec() {
- local hook=${1}
- shift
-
- if ! hook_exists ${hook}; then
- error "Hook '${hook}' does not exist."
- return ${EXIT_ERROR}
- fi
-
- ${SHELL} ${HOOKS_DIR}/${hook} $@
+function hook_zone_exec() {
+ hook_exec zone $@
}
-function hook_port_exec() {
+function hook_zone_port_exec() {
local hook_zone=${1}
local hook_port=${2}
shift 2
- if ! hook_exists ${hook_zone}; then
+ if ! hook_exists zone ${hook_zone}; then
error "Hook '${hook_zone}' does not exist."
return ${EXIT_ERROR}
fi
- if ! hook_port_exists ${hook_zone} ${hook_port}; then
+ if ! hook_zone_port_exists ${hook_zone} ${hook_port}; then
error "Port hook '${hook_port}' does not exist."
return ${EXIT_ERROR}
fi
- ${SHELL} ${HOOKS_DIR}/${hook_zone}.ports/${hook_port} $@
+ ${SHELL} $(hook_dir zone)/${hook_zone}.ports/${hook_port} $@
}
-function hook_config_exec() {
+function hook_zone_config_exec() {
local hook_zone=${1}
local hook_config=${2}
shift 2
- if ! hook_exists ${hook_zone}; then
+ if ! hook_zone_exists ${hook_zone}; then
error "Hook '${hook_zone}' does not exist."
return ${EXIT_ERROR}
fi
- if ! hook_config_exists ${hook_zone} ${hook_config}; then
+ if ! hook_zone_config_exists ${hook_zone} ${hook_config}; then
error "Config hook '${hook_config}' does not exist."
return ${EXIT_ERROR}
fi
- ${SHELL} ${HOOKS_DIR}/${hook_zone}.configs/${hook_config} $@
+ ${SHELL} $(hook_dir zone)/${hook_zone}.configs/${hook_config} $@
}
-function hooks_get_all() {
+function hook_zone_get_all() {
local type=${1}
local hook
- for hook in ${HOOKS_DIR}/*; do
+ for hook in $(hook_dir zone)/*; do
hook=$(basename ${hook})
- hook_exists ${hook} && echo "${hook}"
+ hook_zone_exists ${hook} && echo "${hook}"
done | sort
}
-function hook_ports_get_all() {
+function hook_zone_ports_get_all() {
local hook=${1}
- if ! hook_exists ${hook}; then
+ if ! hook_exists zone ${hook}; then
error "Hook '${hook}' does not exist."
return ${EXIT_ERROR}
fi
local hook
- for hook in ${HOOKS_DIR}/${zone}.ports/*; do
+ for hook in $(hook_dir zone)/${zone}.ports/*; do
hook=$(basename ${hook})
## XXX executeable?
echo "${hook}"
done | sort
}
-
-function config_get_hook() {
- local config=${1}
-
- (
- . ${config}
- echo "${HOOK}"
- )
-}