#!/bin/sh

. /lib/functions.sh

 convert_guest_bridge(){
	local section="$1"

	config_get type "$section" type ""

	[ "$section" != "guest" ] || [ "$type" != "bridge" ] && return

	config_get device "$section" device ""
	config_get device_type
	is_bridge=0
	
	check_device() {
		local device_section="$1"
		local _name=$2

		[ -z "$_name" ] && return

		config_get name "$device_section" name ""
		config_get device_type "$device_section" type ""

		[ "$name" = "$_name" ] && [ "$type" = "bridge" ] && is_bridge=1
	}

	config_foreach check_device device "$device"

	[ $is_bridge -eq 1 ] && return
	

	uci_add "network" "device" "br_guest"
	uci_set "network" "br_guest" "type" "bridge"
	uci_set "network" "br_guest" "name" "br-guest"

	config_get device "$section" device ""

	[ -n "$device" ] && uci_add_list "network" "br_guest" "ports" "$device"

	uci_remove "network" "$section" "type"
	uci_set "network" "$section" "device" "br-guest"

}

config_load network
config_foreach convert_guest_bridge interface
uci_commit network

exit 0
