From: Jonatan Schlag Date: Wed, 26 Jul 2017 08:44:38 +0000 (+0200) Subject: zone: accept also hids in zone_config() X-Git-Tag: 009~112 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e9582016cffa0d41902a7375e7280ee603202824;p=network.git zone: accept also hids in zone_config() Signed-off-by: Jonatan Schlag Signed-off-by: Michael Tremer --- diff --git a/src/functions/functions.zone b/src/functions/functions.zone index 0ee0140c..3e48cb6d 100644 --- a/src/functions/functions.zone +++ b/src/functions/functions.zone @@ -550,28 +550,52 @@ zone_config() { zone_config_new "${zone}" "$@" ;; destroy) - local id=${1} - if zone_config_id_is_valid ${zone} ${id}; then - zone_config_destroy "${zone}" "$@" + # usually ${1} is a valid hid + local hid=${1} + shift 1 + + # We convert the hid into an id + local id=$(zone_config_convert_hid_to_id ${zone} ${hid}) + + # If id isset the hid is valid and we can go on with the id + if isset id; then + zone_config_destroy "${zone}" "${id}" "$@" + + # If we can't get a valid hid we check if we got a valid id else - log ERROR "${id} is not a valid id" + if zone_config_id_is_valid ${zone} ${hid}; then + zone_config_destroy "${zone}" ${hid} "$@" + else + log ERROR "${id} is not a valid id or hid" + fi fi ;; list) zone_config_list "${zone}" "$@" ;; *) - # Check is we get a valid id - # TODO This could be also a valid hid - local id=${cmd} + # usually ${1} is a valid hid + local hid=${cmd} + local cmd=${1} + shift 1 - if zone_config_id_is_valid ${zone} ${id} && [[ ${1} == "edit" ]]; then - shift 1 - zone_config_edit "${zone}" "${id}" "$@" + local id=$(zone_config_convert_hid_to_id ${zone} ${hid}) + + # If id isset the hid is valid and we can go on with the id + if isset id && [[ ${cmd} == "edit" ]]; then + zone_config_edit "${zone}" "${id}" "$@" + + # If we didn't get a valid hid we check if we got a valid id else - error "Unrecognized argument: ${cmd}" - cli_usage root-zone-config-subcommands - exit ${EXIT_ERROR} + if zone_config_id_is_valid ${zone} ${id} && [[ ${cmd} == "edit" ]]; then + shift 1 + zone_config_edit "${zone}" "${id}" "$@" + else + # in ${hid} is saved the command after network zone ${zone} config + error "Unrecognized argument: ${hid}" + cli_usage root-zone-config-subcommands + exit ${EXIT_ERROR} + fi fi ;; esac