#!/bin/zsh

readwrite() {
        mount -wo remount /
        mount -wo remount /boot
}

readonly() {
        mount -ro remount /boot
        mount -ro remount /
}

update() {
	(( grep -v "^$1" /etc/config.rc ; echo "$1=$2" ) > /etc/config.rc.new) && mv /etc/config.rc.new /etc/config.rc
}

interf=$1

eval CFG_IF_${interf}_ADDR=`grep "^${interf}_ip_address=" /etc/config.rc |cut -f2 -d=|cut -f1 -d/`
eval CFG_IF_${interf}_MASK=`grep "^${interf}_ip_address=" /etc/config.rc |cut -f2 -d=|cut -f2 -d/`
eval CFG_IF_${interf}_GW=`grep "^ip_route=default:" /etc/config.rc |cut -f2 -d:`

if [ -e /tmp/unsaved-addr-${interf} ]; then
	. /tmp/unsaved-addr-${interf}
fi

readwrite

eval var1=$"CFG_IF_${interf}_ADDR"
eval var2=$"CFG_IF_${interf}_MASK"
if [ ! -z $var1 -a ! -z $var2 ]; then
	#echo ${interf}_ip_address=$var1/$var2
	update ${interf}_ip_address $var1/$var2
fi

eval var1=$"CFG_IF_${interf}_GW"
if [ ! -z $var1 ]; then
	#echo ip_route=default:$var1
	update ip_route default:$var1
fi

readonly

echo "# ${interf} setup saved" > /tmp/unsaved-addr-${interf}

