#!/bin/bash
#
# diskmanager-daemon.sh				First Version 19 Dec 2005
#
# Latest RC: v0.05, Dec 22
# Latest Version: v0.1.1, Dec 25
# 
# IMPORTANT!
# IMPORTANT!            DO NOT USE THIS SCRIPT! IT _WILL_ FAIL
# IMPORTANT!
#
# GPL - Marno van der Molen - marno.vandermolen@gmail.com
#
# Manages multiple disks; it implements the basic things used in LVM, without
# the need to reformat your disks.
#
# This is the DAEMON Version, meaning that this is ran non-interactive. 
# It will never ask for user input, or show status messages.
# Usefull for cronjobs etc..
#

### INIT
VERSIONTAG="Beta Version v0.1.1 Dec 25"
alias dialog='dialog --backtitle "Diskspace Management Utility (${VERSIONTAG}) by Marno"'
uploads=/bigdisk/uploads
manage="movies
software
games
ebooks"

### CHECK
if [ ! -w /root/diskmanager.sh ]
then
	exit
else
	rm /tmp/menuitem* -f > /dev/null 2>&1
fi

### FUNCTIONS
checksize () {
AVAIL=`df -l /home/symlinks/$1/*/ | awk {'print $4'} | grep -v Available | sort -nr | head -n 1`
NEED=$2
if [ "$NEED" -gt "$AVAIL" ]
then
	DISK="error"
else
	DISK=`df -l | grep $AVAIL | awk {'print $6'}`
fi
}

movefiles () {
	# Cleanup
	NOTFINISHED=""
	FINISHED=""
	
	# Start loop
	for TYPE in $manage
	do

	if [ `ls -ald $uploads/$TYPE/* > /dev/null 2>&1; echo $?` == "0" ]
	then
	# Files have been found, check the size against total available space
		checksize $TYPE `du -lc $uploads/$TYPE/* | awk {'print $1'} | tail -n 1`
	
		if [ $DISK = "error" ]
		then
		# Onvoldoende schijfruimte
		echo "Insufficient Diskspace!"
		exit
		else
		# Voldoende schijfruimte, ga bestanden verplaatsen.
			
			done="false"
				mv ${uploads}/${TYPE}/* ${DISK}/${TYPE} && DONE="true"
			# Subcheck voor het updaten van de moviedb
			if [ "${DONE}" == "true" ] 
			then
				if [ $TYPE == "movies" ]
				then
						moviedbgenerator -m > /dev/null 2>&1
				fi
			fi
		fi
	fi
	done
	exit
}

check () {
	if [ `ls -ald $uploads/*/* >/dev/null 2>&1; echo $?` == "0" ]
	then
	movefiles
	else
	exit
	fi
}

### START
check
