#!/bin/sh /etc/rc.common
# Copyright (C) 2015 Patrick Grimm
# modified 2017 by weimarnetz 

START=98
USE_PROCD=1

validate_autoconf_section()
{
	uci_validate_section ffwizard settings "${1}" \
		'firstboot:bool'
}


setup_ether() {
	local cfg="$1"
	if [ "$cfg" = "lan" ] ; then
		if ! uci_get ffwizard $cfg >/dev/null ; then
			uci_add ffwizard ether "$cfg"
		fi
		uci_set ffwizard $cfg enabled "1"
		uci_set ffwizard $cfg device $cfg
		uci_set ffwizard $cfg olsr_mesh "1"
	fi
}

setup_wifi() {
	local cfg="$1"
	#cut radio to get the phy index
	local idx="$(echo $cfg | cut -c 6-)"
	if ! uci_get ffwizard $cfg >/dev/null ; then
		uci_add ffwizard wifi "$cfg"
	fi
	uci_set ffwizard $cfg enabled "$(uci_get ffwizard $cfg enabled '1')"
	uci_set ffwizard $cfg idx $idx
	uci_set ffwizard $cfg olsr_mesh "$(uci_get ffwizard $cfg olsr_mesh '1')"
	uci_set ffwizard $cfg vap "$(uci_get ffwizard $cfg vap '1')"
}

setup_vpn() {
  local cfg="$1"
  if ! uci_get ffwizard $cfg >/dev/null ; then
    uci_add ffwizard vpn "$cfg"
  fi
  uci_set ffwizard $cfg enabled "$(uci_get ffwizard $cfg enabled '1')"
  uci_set ffwizard $cfg olsr_mesh "$(uci_get ffwizard $cfg olsr_mesh '1')"
  uci_set ffwizard $cfg mode "$(uci_get ffwizard $cfg mode 'all')"
  uci_set ffwizard $cfg paranoia "$(uci_get ffwizard $cfg paranoia '1')"
}

start_autoconf() {
	firstboot=$(uci_get ffwizard settings firstboot "0")
	[ "$firstboot" = "0" ] && return
	config_load wireless
	config_foreach setup_wifi wifi-device
	config_load network
	config_foreach setup_ether interface
	setup_vpn vpn
	# Reset firstboot flag
	uci_set ffwizard settings firstboot 0
	uci_commit ffwizard
  /etc/init.d/ffwizard reload
}

reload_service() {
	logger -s -t ffwizard_autoconf "Reload Service"
	start_autoconf
}

start_service() {
	logger -s -t ffwizard_autoconf_init "Start Service"
	procd_set_param watch ffwizard
	start_autoconf
}
