#!/bin/bash
export USER=smc
export PATH=/home/smc/bin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
export LD_LIBRARY_PATH=/home/smc/lib:/usr/local/lib
export OMNIORB_CONFIG=/home/smc/omniORB.cfg
export HOME=/home/smc
#
DATETIME=`date +%Y%m%d%H%M%S`
GWAVESDATADIR="/mnt/XDATA/GPSWaves"
GWAVESARCHIVE="GWAVES.tar.bz2"
RAWLOG="raw.log"
WAVESLOG="waves.log"
SPECTRUMLOG="spectrum.log"
TWAVESLOG="$DATETIME$WAVESLOG"
TSPECTRUMLOG="$DATETIME$SPECTRUMLOG"
TRAWLOG="$DATETIME$RAWLOG"
MAXUSAGE=10000000000
FILESREMOVED=0
#
function DoArchive()
{
	echo `date` "GWAVEScronScript90mins: DoArchive: " "du befor archiving: " `sudo du -b -s /mnt/XDATA/` >> /home/smc/log/GPSWaves.log
	#
	for fileName in `ls -1tr "$GWAVESDATADIR/"*"$GWAVESARCHIVE"`
	do
		if [ `sudo du -b -s /mnt/XDATA/ | (read a b; echo $a)` -gt "$MAXUSAGE" ]
		then
			echo `date` "GWAVEScronScript90mins: DoArchive: " "disk usage exceeded, removing oldest archive $fileName" >> /home/smc/log/GPSWaves.log
			( cd "$GWAVESDATADIR" ; sudo rm -f "$fileName" )
			((FILESREMOVED++))
		else
			break
		fi
	done
	#
	if [ "$FILESREMOVED" -gt 0 ]
	then
		echo `date` "GWAVEScronScript90mins: DoArchive: " "$FILESREMOVED files removed" >> /home/smc/log/GPSWaves.log
	else
		echo `date` "GWAVEScronScript90mins: DoArchive: " "disk usage not exceeded, nothing removed" >> /home/smc/log/GPSWaves.log
	fi
	#
	if [ -f "$GWAVESDATADIR/$RAWLOG" ]
	then
		mv "$GWAVESDATADIR/$RAWLOG" "$GWAVESDATADIR/$TRAWLOG"
	fi
	#
	if [ -f "$GWAVESDATADIR/$SPECTRUMLOG" ]
	then
		mv "$GWAVESDATADIR/$SPECTRUMLOG" "$GWAVESDATADIR/$TSPECTRUMLOG"
	fi
	#
	if [ -f "$GWAVESDATADIR/$WAVESLOG" ]
	then
		mv "$GWAVESDATADIR/$WAVESLOG" "$GWAVESDATADIR/$TWAVESLOG"
	fi
	#
	echo `date` "GWAVEScronScript90mins: DoArchive: " "stopping GWAVES for file archiving" >> /home/smc/log/GPSWaves.log
	ServerExec GPSWaves "GWAVES --stop" >> /home/smc/log/GPSWaves.log
}

function DoTar()
{
	echo `date` "GWAVEScronScript90mins: DoTar: " "starting tar" >> /home/smc/log/GPSWaves.log
	( cd "$GWAVESDATADIR" ; tar --remove-files -cvjf "$DATETIME$GWAVESARCHIVE" "$TRAWLOG" "$TWAVESLOG" "$TSPECTRUMLOG" ) >> /home/smc/log/GPSWaves.log
	echo `date` "GWAVEScronScript90mins: DoTar: " "du after archiving: " `sudo du -b -s /mnt/XDATA/` >> /home/smc/log/GPSWaves.log
}

function StartWaves()
{
	echo `date` "GWAVEScronScript90mins: " "starting GPSWaves" >> /home/smc/log/GPSWaves.log
	ServerExec GPSWaves "GWAVES --start" >> /home/smc/log/GPSWaves.log
}


function StopWaves()
{
	echo `date` "GWAVEScronScript90mins: " "stopping GPSWaves" >> /home/smc/log/GPSWaves.log
	ServerExec GPSWaves "GWAVES --stop" >> /home/smc/log/GPSWaves.log
}

HOURS=`date +%H`
if [ $HOURS -eq 00 ]
then
	echo "performing archive"
	set +e
	DoArchive >> /home/smc/log/GPSWaves.log
	DoTar & >> /home/smc/log/GPSWaves.log
	set -e
fi

StartWaves
sleep 2705
StopWaves



