#!/bin/sh

. /etc/init.d/globals

MOUNTBASE=/mnt
MOUNTPOINT="$MOUNTBASE/$MDEV"
ROOTDEV=$(readlink /dev/root)

# do not add or remove root device again...
[ "$ROOTDEV" = "$MDEV" ] && exit 0

if [ -e /tmp/.nomdevmount ]; then
	LOGINFO "no action on $MDEV -- /tmp/.nomdevmount exists"
	exit 0
fi

case "$ACTION" in
	add)
		# do not mount kernel partitions
		for i in 2 4 6 8; do
			if [ ${MDEV:$((${#MDEV}-1)):1} -eq $i ]; then
				LOGINFO "[$ACTION] /dev/$MDEV is a kernel partition - not mounting."
				exit 0
			fi
		done
		# TODO: check for partitions
		if grep -q "/dev/$MDEV" /proc/mounts; then
			LOGINFO "/dev/$MDEV already mounted - not mounting again"
			exit 0
		fi
		if [ "$MDEV" = "mmcblk0p3" ]; then
			MOUNTPOINT="$MOUNTBASE/linuxrootfs1"
		elif [ "$MDEV" = "mmcblk0p7" ]; then
			MOUNTPOINT="$MOUNTBASE/userdata"
		fi
		LOGINFO "[$ACTION] mounting /dev/$MDEV to $MOUNTPOINT"
		# remove old mountpoint symlinks we might have for this device
		rm -f $MOUNTPOINT
		mkdir -p $MOUNTPOINT
		mount -t auto /dev/$MDEV $MOUNTPOINT 2>&1 >/dev/null
		RET=$?
		if [ $RET != 0 ]; then
			LOGWARN "mount   /dev/$MDEV $MOUNTPOINT failed with $RET"
			LOGWARN "        $OUT1"
			rmdir $MOUNTPOINT
		fi
		;;
	remove)
		LOGINFO "[$ACTION] unmounting $MOUNTBASE/$MDEV"
		grep -q "^/dev/$MDEV " /proc/mounts || exit 0 # not mounted...
		umount -lf $MOUNTBASE/$MDEV
		RET=$?
		if [ $RET = 0 ]; then
			rmdir $MOUNTPOINT
		else
			LOGWARN "umount $MOUNTBASE/$MDEV failed with $RET"
		fi
		;;
esac