#!/bin/bash

# Script to format the update partition
#

PATH=/usr/sbin:/usr/bin:/sbin:/bin

ROOTDEV=''
ROOTFS=''
INSTALLDEV=''
DEVICE=""
DEVICE_LABEL_UPDATE="UPDATE"
MNT_UPDATE="/mnt/update"
UPDATE_FS=ext4

DEVICE=`blkid -l -t LABEL=$DEVICE_LABEL_UPDATE | cut -d: -f1`
if ( [ ! -z $DEVICE ] && [ -b $DEVICE ] ) ; then
    echo "The update dev is found. Mount it and exit ..."
    mount -t $UPDATE_FS  $DEVICE $MNT_UPDATE
    exit 0
fi    

parse_opt() {
	case "$1" in
		*\=*)
		echo "$1" | cut -f2 -d=
		;;
	esac
}

# Get default root device and file system
if [ -r /rootdev ]; then
  ROOTDEV=`cat /rootdev`
fi
if [ -r /rootfs ]; then
  ROOTFS=`cat /rootfs`
fi

# Scan CMDLINE for any specified real_root etc.
CMDLINE=`cat /proc/cmdline`

#echo $CMDLINE

for x in $CMDLINE
do
    case "$x" in
	    root\=*)
	    ROOTDEV=`parse_opt "$x"`
    esac
done

#echo "rootdev = " $ROOTDEV

if [ "$ROOTDEV" == "/dev/nande" ]; then
    INSTALLDEV="/dev/nandf"
elif [ "$ROOTDEV" == "/dev/nandf" ]; then
    INSTALLDEV="/dev/nande"
elif [ "$ROOTDEV" == "/dev/mmcblk0p8" ]; then
    INSTALLDEV="/dev/mmcblk0p9"
elif [ "$ROOTDEV" == "/dev/mmcblk0p9" ]; then
    INSTALLDEV="/dev/mmcblk0p8"
else
    echo "There is no device where to install, exit ..."
    exit 1
fi

#echo "===================================================="
#echo "=======START FORMAT THE UPDATE PARTITION============"
#echo "===================================================="
#echo "install dev = "$INSTALLDEV

umount $INSTALLDEV

#echo "Clear the "$INSTALLDEV
mkfs.ext4 $INSTALLDEV

if [ $? -eq 0 ]; then
    echo "format is done" 
else
    echo "ERROR: cannot format ..."	
    exit 1
fi

tune2fs -L $DEVICE_LABEL_UPDATE $INSTALLDEV

if [ $? -eq 0 ]; then
    echo "tune2fs is done" 
else
    echo "ERROR: cannot do tunefs ..."	
    exit 1
fi

udevtrigger

/bin/sleep 5

mount -t $UPDATE_FS $INSTALLDEV $MNT_UPDATE
if [ $? -eq 0 ]; then
    echo "mount by dev is done" 
else
    echo "ERROR: cannot do mount"	
    exit 1
fi

exit 0
