#! /bin/sh

# use autoresampler to control this daemon

configFile="config.ini"

autoresamplerDir=$PWD
mainphpDir=`grep "mainphpDir" $configFile | sed -e "s/mainphpDir=//"`
queue=`grep "queue" $configFile | sed -e "s/queue=//"`
failuresLog=`grep "failuresLog" $configFile | sed -e "s/failuresLog=//"`
failuresDir=`grep "failuresDir" $configFile | sed -e "s/failuresDir=//"`

# $1: queued file
resample() {
	queuedFile="$1"

	id=`grep "id" $queuedFile | sed -e "s/id=//"`

	cd $mainphpDir
	php Main.php do=headlinesImageDoCreateResampledCopy id=$id >/dev/null
	result=$?
	cd $autoresamplerDir

	return $result
}

logFailure() {
	failedFile=$1
	id=`grep "id" $failedFile | sed -e "s/id=//"`
	
	logText="`date +%Y-%m-%d\ %H:%M:%S` - error resampling image with id: $id - data file moved to `readlink -f $failedFile`"

	echo "$logText" >> $failuresLog
}

while true; do
	echo "`date +%Y-%m-%d\ %H:%M:%S` - reading queue..."
	count=`ls -1 $queue | wc -l`
	if [ $count = 0 ] ; then
		echo "  queue is empty"
	else
		echo "  $count files found"
	fi
	files=`ls -1 $queue`
	for file in $files ; do
		echo "  `date +%Y-%m-%d\ %H:%M:%S` - processing $file..."
		resample $queue/$file
		if [ $? = 0 ] ; then
			echo "    resample result: OK"
			rm -f $queue/$file
		else
			echo "    resample result: FAILURE"
			if [ ! -d "$failuresDir" ] ; then
				mkdir $failuresDir
			fi
			mv $queue/$file $failuresDir/$file
			logFailure $failuresDir/$file
		fi
	done
	echo "`date +%Y-%m-%d\ %H:%M:%S` - done processing queue"
	sleep 60s
done
