Signed-off-by: Jonatan Schlag jonatan.schlag@ipfire.org --- src/functions/functions.zone | 46 ++++++++++++++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 14 deletions(-)
diff --git a/src/functions/functions.zone b/src/functions/functions.zone index 0696750..90dfbc6 100644 --- a/src/functions/functions.zone +++ b/src/functions/functions.zone @@ -550,28 +550,46 @@ 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}" "$@" else - log ERROR "${id} is not a valid id" + # We get no valid hid so we check if we get 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} - - if zone_config_id_is_valid ${zone} ${id} && [[ ${1} == "edit" ]]; then - shift 1 - zone_config_edit "${zone}" "${id}" "$@" + # usually ${1} is a valid hid + local hid=${cmd} + local cmd=${1} + shift 1 + 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}" "$@" else - error "Unrecognized argument: ${cmd}" - cli_usage root-zone-config-subcommands - exit ${EXIT_ERROR} + # We get no valid hid so we check if we get a valid id + 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