#!/bin/bash

IF=$1
STATUS=$2

table='3G'

if [ "$IF" == 'usb0' -o "$IF" == 'ppp0' ]; then
	case $STATUS in
		up)
			rm -f /etc/init.d/02newroute_start

			s="#!/bin/bash\n"
			s+="\n"
			s+="IF=\$1\n"
			s+="STATUS=\$2\n"
			s+="\n"
			s+="table='3G'\n"
			s+="\n"
			s+="if [ \"\$IF\" == 'ppp0' ]; then\n"
			s+="\t        while :\n"
			s+="\t        do\n"
			s+="\t\t                modem=\`LANG=en_US.utf8 nmcli dev | grep -i ttyUSB | awk '{print \$1}'\`\n"
			s+="\t\t                if [ -n \"\$modem\" ]; then\n"
			s+="\t\t\t                        break\n"
			s+="\t\t                fi\n"
			s+="\n"
			s+="\t\t                sleep 1\n"
			s+="\t        done\n"
			s+="\n"
			s+="\t        logger -s \"Modem found for routing table \$modem\"\n"
			s+="\n"
			s+="\t        network=\`LANG=en_US.utf8 nmcli -t -f IP4 dev list iface \$modem | grep -i IP4.ADDRESS | awk '{print \$3}' | sed -e 's/,//g'\`\n"
	                s+="\t        gateway=\`LANG=en_US.utf8 nmcli -t -f IP4 dev list iface \$modem | grep -i IP4.ADDRESS | awk '{print \$6}'\`\n"
			s+="else\n"
			s+="\t        network=\`LANG=en_US.utf8 nmcli -t -f IP4 dev list iface \$IF | grep -i IP4.ADDRESS | awk '{print \$3}' | sed -e 's/,//g'\`\n"
			s+="\t        gateway=\`LANG=en_US.utf8 nmcli -t -f IP4 dev list iface \$IF | grep -i IP4.ADDRESS | awk '{print \$6}'\`\n"
			s+="fi\n"
			s+="\n"
			s+="if [ \`cat /etc/iproute2/rt_tables | grep -i \$table | wc -l\` == '0' ]; then\n"
			s+="\t        logger -s \"Create \$table routing table...\"\n"
			s+="\t        echo \"1 \$table\" >> /etc/iproute2/rt_tables\n"
			s+="else\n"
			s+="\t        logger -s \"Flush \$table routing table...\"\n"
			s+="\t        ip route flush table \$table\n"
			s+="fi\n"
			s+="\n"
			s+="logger -s \"Set default gayeway for \$table routing table...\"\n"
			s+="ip route add default via \$gateway dev \$IF table \$table\n" 
			s+="\n"
			s+="logger -s \"Set rule of network...\"\n"
			s+="ip rule add from \$network table \$table"

			echo -e $s > /etc/init.d/02newroute_start
			chmod +x /etc/init.d/02newroute_start
			/etc/init.d/02newroute_start $IF $STATUS &
			;;
		down)
			rm -f /etc/init.d/02newroute_stop

			s="#!/bin/bash\n"
                        s+="\n"
                        s+="IF=\$1\n"
                        s+="STATUS=\$2\n"
                        s+="\n"
                        s+="table='3G'\n"
                        s+="\n"
			s+="if [ \`cat /etc/iproute2/rt_tables | grep -i \$table | wc -l\` != '0' ]; then\n"
			s+="\t        logger -s \"Flush \$table routing table...\"\n"
                        s+="\t        ip route flush table \$table\n"
                        s+="fi"

			echo -e $s > /etc/init.d/02newroute_stop
                        chmod +x /etc/init.d/02newroute_stop
                        /etc/init.d/02newroute_stop $IF $STATUS &
			;;
		*)
			;;
	esac
fi
