#!/bin/busybox sh

echo "=== Initial: MOUNT Start ===" > /dev/kmsg

BLK_PATH=/dev/disk/by-partlabel
NVDATA_PATH=/data

mnt_folder(){
        BLK_NAME=$1
        MNT_FOLDER=$2

	#necho "=== Initial: mount $MNT_FOLDER to $BLK_NAME ===" > /dev/kmsg
        # first mount
        mntdone=`mount -t ext4 $BLK_PATH/$BLK_NAME $MNT_FOLDER 2>&1`

        # check need to format or not
        if [ ! "$mntdone" == "" ]; then
		#echo "=== Initial: new, need format ===" > /dev/kmsg
                # format
                mkfs -t ext4 $BLK_PATH/$BLK_NAME
                # remount
                mount -t ext4 $BLK_PATH/$BLK_NAME $MNT_FOLDER
        fi
}
mnt_data_folder(){
        BLK_NAME=$1
        MNT_FOLDER=$2

        #echo "=== Initial: mount $MNT_FOLDER to $BLK_NAME ===" > /dev/kmsg
        # first mount
        mntdone=`mount -t ext4 $BLK_PATH/$BLK_NAME $MNT_FOLDER 2>&1`

        # check need to format or not
        if [ ! "$mntdone" == "" ]; then
                #echo "=== Initial: new, need format ===" > /dev/kmsg
                # format
                mkfs -t ext4 $BLK_PATH/$BLK_NAME
                # remount
                mount -t ext4 $BLK_PATH/$BLK_NAME $MNT_FOLDER
		cp -a /usr/share/data/* $MNT_FOLDER		
        fi
}
mnt_bind_folder(){
        DST_FOLDER=$1
        SRC_FOLDER=$2

        #echo "=== Initial: mount bind $DST_FOLDER to $SRC_FOLDER ===" > /dev/kmsg
	mntdone=`mount -o bind $DST_FOLDER $SRC_FOLDER 2>&1`

	if [ ! "$mntdone" == "" ]; then
		#echo "=== Initial: new, need create state folder and copy ===" > /dev/kmsg
		mkdir -p $DST_FOLDER

		if test "$(ls -A "$SRC_FOLDER")"; then
			cp -a $SRC_FOLDER/* $DST_FOLDER
		else
			echo The directory $SRC_FOLDER is empty '(or non-existent)'
		fi

		mount -o bind $DST_FOLDER $SRC_FOLDER
	fi
}
mnt_bind_file(){
        DST_FILE=$1
        SRC_FILE=$2

        #echo "=== Initial: mount bind $DST_FILE to $SRC_FILE ===" > /dev/kmsg
        mntdone=`mount -o bind $DST_FILE $SRC_FILE 2>&1`

        if [ ! "$mntdone" == "" ]; then
                #echo "=== Initial: new, need copy ===" > /dev/kmsg
                cp -a $SRC_FILE $DST_FILE
		sync
                mount -o bind $DST_FOLDER $SRC_FOLDER
        fi
}
# mount nvram and link it
#mnt_folder nvdata $NVDATA_PATH

# work-around for /data mount to nvdata partition
#cp -rf /usr/share/data /

mnt_folder STATE /STATE
mnt_bind_folder /STATE/var    /var
mount -v -t tmpfs -o defaults,size=30M tmpfs /var/volatile

mnt_bind_folder /STATE/usr/lib/tmpfiles.d       /usr/lib/tmpfiles.d
mnt_bind_folder /STATE/etc/firmware             /etc/firmware
mnt_bind_folder /STATE/etc/syslog		/etc/syslog

mnt_bind_folder /STATE/home   			/home
mnt_bind_folder /STATE/mnt    			/mnt
mnt_bind_folder /STATE/srv    			/srv
mnt_bind_folder /STATE/usr/local		/usr/local
mnt_bind_folder /STATE/system/etc/firmware	/system/etc/firmware
mnt_bind_folder /STATE/system/etc/audio_param	/system/etc/audio_param
mnt_bind_folder /STATE/custom/etc/firmware      /custom/etc/firmware

mnt_data_folder nvdata /data
mkdir -p /data/nvram
mnt_folder protect1 /protect_f
mnt_folder protect2 /protect_s

echo "=== Initial: MOUNT Configuration End ===" > /dev/kmsg
