#!/bin/sh

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

CONFIGFILE="/etc/devicemanager.cfg"
TMPFILE="/tmp/blkidlist"
HDD_NO=""
USB_NO=""
DEV_LIST="sda sdb sdc sdd sde sdf"
DEVNO="1"

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 [ -e /dev/sda1 ]; then
				for BLOCKDEVICE in $DEV_LIST ; do
					DEVICE=$BLOCKDEVICE$DEVNO
					echo [DeviceManager] checking device /dev/$DEVICE
					if [ "$(cat /proc/partitions | grep $DEVICE)" != "" ]; then
						REMOVEABLE=$(cat /sys/block/$BLOCKDEVICE/removable)
						COUNTER=1
						while [ $COUNTER -le 5 ]; do
							BUUID=$(blkid -o value -s UUID /dev/$DEVICE)
							let COUNTER=$COUNTER+1
							if [ $BUUID != "" ]; then
								if [ $REMOVEABLE = 0 ] ; then
									if [ ! -d /media/hdd$HDD_NO ]; then
										mkdir -p /media/hdd$HDD_NO
									fi
									echo "/media/hdd$HDD_NO:$BUUID" >> $CONFIGFILE
									let HDD_NO=$HDD_NO+1
								else
									if [ ! -d /media/usb$USB_NO ]; then
										mkdir -p /media/usb$USB_NO
									fi
									echo "/media/usb$USB_NO:$BUUID" >> $CONFIGFILE
									let USB_NO=$USB_NO+1
								fi
								break;
							fi
							sleep 1
						done
					fi
				done
			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 -n 's/.*TYPE=\"\([^\"]*\)\".*/\1/p'`
			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
					if [ ! -d $CONFIGPATH ]; then
						mkdir -p $CONFIGPATH
					fi
					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
