#!/bin/sh

########################################
#      plnick@vuplus-support.org       #
########################################

CONFIGFILE="/etc/devicemanager.cfg"
TMPFILE="/tmp/blkidlist"

case "$1" in
	start)
		if [ ! -f $CONFIGFILE ]; then
			count=1
			while [ $count -le 5 ]; do
				let count=$count+1
				if [ -e /dev/sda1 ]; then 
					break;
				fi
				sleep 1
			done
			if [ "$(cat /proc/partitions | grep sda1)" != "" ]; then
				REMOVEABLESDA=$(cat /sys/block/sda/removable)
				COUNTERA=1
				while [ $COUNTERA -le 5 ]; do
					BUUIDSDA=$(blkid -o value -s UUID /dev/sda1)
					let COUNTERA=$COUNTERA+1
					if [ $BUUIDSDA != "" ]; then 
						break;
					fi
					sleep 1
				done
				if [ "$(cat /proc/partitions | grep sdb1)" != "" ]; then
					REMOVEABLESDB=$(cat /sys/block/sdb/removable)
					COUNTERB=1
					while [ $COUNTERB -le 5 ]; do
						BUUIDSDB=$(blkid -o value -s UUID /dev/sdb1)
						let COUNTERB=$COUNTERB+1
						if [ $BUUIDSDB != "" ]; then 
							break;
						fi
						sleep 1
					done
					if [ $REMOVEABLESDA = 0 ]; then
						echo "/media/hdd:$BUUIDSDA" > $CONFIGFILE
						echo "/media/usb:$BUUIDSDB" >> $CONFIGFILE
					else
						if [ $REMOVEABLESDB = 0 ]; then
							echo "/media/hdd:$BUUIDSDB" > $CONFIGFILE
							echo "/media/usb:$BUUIDSDA" >> $CONFIGFILE
						else
							echo "/media/hdd:$BUUIDSDA" > $CONFIGFILE
							echo "/media/usb:$BUUIDSDB" >> $CONFIGFILE
						fi
					fi
					if [ ! -d /media/usb ]; then
						mkdir -p /media/usb
					fi
				else
					echo "/media/hdd:$BUUIDSDA" > $CONFIGFILE
				fi
			else
				touch $CONFIGFILE
			fi
		fi

		# we do not need a mount binary with UUID support, mounting this way is faster than mounting with UUID without FS type
		blkid -c /dev/null /dev/sd* > $TMPFILE
		IFS=$'\n'
		for i in $(cat $TMPFILE); do
			DEVICE=`echo $i | cut -d':' -f1`
			UUID=`echo $i | sed -e 's/^.* UUID=\"//;s/\" .*$//'`
			FILESYSTEM=`echo $i | sed -e 's/^.* TYPE=\"//;s/\" .*$//'`
			if [ $FILESYSTEM == "ntfs" ]; then
				FILESYSTEM="ntfs-3g"
			fi
			for b in $(cat $CONFIGFILE); do
				CONFIGUUID=`echo $b | cut -d: -f2`
				CONFIGPATH=`echo $b | cut -d: -f1`
				if [ $CONFIGUUID == $UUID ]; then
					echo [DeviceManager] mounting $DEVICE at $CONFIGPATH filesystem: $FILESYSTEM UUID: $CONFIGUUID
					mount $DEVICE -t $FILESYSTEM $CONFIGPATH
					break;
				fi
			done
		done

		rm $TMPFILE
	;;

	stop)
		umount /dev/sd*[1-9] >/dev/null 2>&1
	;;

	reload)
		umount /dev/sd*[1-9] >/dev/null 2>&1
		$0 start
		/bin/mount -a
	;;

	*)
		echo "Usage: $0 {start|stop|reload}" >&2
		exit 1
	;;
esac

exit 0
