From: Jonatan Schlag Date: Wed, 5 Jul 2017 14:19:48 +0000 (+0200) Subject: zone: new function zone_config_get_hook_from_id X-Git-Tag: 009~191 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cdf4266d83d752c42002eac8e764b6e30861ee48;p=network.git zone: new function zone_config_get_hook_from_id This function is needed to implement the id feature described in #11405 Signed-off-by: Jonatan Schlag Signed-off-by: Michael Tremer --- diff --git a/src/functions/functions.zone b/src/functions/functions.zone index fcc7bfa3..90d7e115 100644 --- a/src/functions/functions.zone +++ b/src/functions/functions.zone @@ -1061,6 +1061,26 @@ zone_config_id_is_valid() { [ -f ${zone_path}/configs/*.${id} ]; } +zone_config_get_hook_from_id() { + # Returns the hook for a given id + assert [ $# -eq 2 ] + local zone=${1} + local id=${2} + + local config + for config in $(zone_configs_list "${zone}"); do + if [[ ${config} == *.${id} ]]; then + local config_hook="$(zone_config_get_hook "${zone}" "${config}")" + assert isset config_hook + print "${config_hook}" + return "${EXIT_OK}" + fi + done + + # If we get here the zone has no config with the given id + return ${EXIT_ERROR} +} + zone_has_ip() { device_has_ip $@ }