#!/bin/sh

iptables-restore < /etc/network/iptables-rules

# Logging and config is stored on /data
mkdir -p /data
ubiattach -p /dev/mtd5 -d 5
mount -t ubifs ubi5:data /data

if [ ! -d "/data/log" ]; then
	mkdir -p /data/log
fi

if [[ ! -d "/data/config" ]]; then
	echo "Moving framework config to /data partition"
	rm -rf /data/config
	cp -a /framework/factoryconfig /data/config
	sync
fi
if [[ ! -L "/framework/connected_devices_framework/src/config" ]]; then
	echo "Creating framework config symbolic link to /data partition"
	rm -rf /framework/connected_devices_framework/src/config
	ln -sf /data/config /framework/connected_devices_framework/src/config
	sync
fi

if [[ ! -d "/data/persistentdata" ]]; then
	echo "Moving framework persistentdata to /data partition"
	rm -rf /data/persistentdata
	cp -a /framework/factorypersistentdata /data/persistentdata
	sync
fi
if [[ ! -L "/framework/connected_devices_framework/src/persistentdata" ]]; then
	echo "Creating framework persistentdata symbolic link to /data partition"
	rm -rf /framework/connected_devices_framework/src/persistentdata
	ln -sf /data/persistentdata /framework/connected_devices_framework/src/persistentdata
	sync
fi

for file in /framework/factoryconfig/*; do
	if [[ ! -s /data/config/`basename $file` ]]; then
		echo "Replacing empty config file with factory config: `basename $file`"
		cp /framework/factoryconfig/`basename $file` /data/config
		sync
	fi
done

# Start all init scripts in /etc/init.d
# executing them in numerical order.
#
for i in /etc/init.d/S??* ;do

     # Ignore dangling symlinks (if any).
     [ ! -f "$i" ] && continue

     case "$i" in
	*.sh)
	    # Source shell script for speed.
	    (
		trap - INT QUIT TSTP
		set start
		. $i
	    )
	    ;;
	*)
	    # No sh extension, so fork subprocess.
	    $i start
	    ;;
    esac
done
