#!/bin/bash

function check_okay {
	if [ $? -ne 0 ]
	then
		exit 1
	fi
}

function clean_one {
	cd $1
	check_okay
	echo "clean" $1
  ./clean
  check_okay
	cd ..
}

#some definitions
HOSTNAME=`hostname`
DATE=`date '+%d/%m/%y'`
MESADIR='/Users/bpaxton/mesa'
TESTDIR='mesa_test'
OUTPUT=$MESADIR/test_output
VERSION=`cat $MESADIR/test_version`

#clean up from last time
cd $MESADIR
rm -rf $OUTPUT

echo output $OUTPUT

#print email header
echo ---------------------------------------------- >> $OUTPUT
echo MESA nightly test script for $DATE >> $OUTPUT
echo $HOSTNAME >> $OUTPUT 
echo current test version = $VERSION >> $OUTPUT
ifort -V >> $OUTPUT
echo ---------------------------------------------- >> $OUTPUT
echo >> $OUTPUT
echo check if find "failed" in text >> $OUTPUT
echo >> $OUTPUT

rm -rf $TESTDIR
#checkout and install
echo \*\*\*\*\*\*\* INSTALL \*\*\*\*\*\*\* >> $OUTPUT
svn co -r $VERSION http://mesa.svn.sourceforge.net/svnroot/mesa/trunk $TESTDIR
cd $TESTDIR

cp utils/makefile_header.mesasdk utils/makefile_header
echo \*\*\*\*\*\*\* CLEAN \*\*\*\*\*\*\*
echo \*\*\*\*\*\*\* CLEAN \*\*\*\*\*\*\* >> $OUTPUT
./clean
echo \*\*\*\*\*\*\* INSTALL \*\*\*\*\*\*\*
echo \*\*\*\*\*\*\* INSTALL \*\*\*\*\*\*\* >> $OUTPUT
./install | tee install.out
    #./install >& install.out
grep FAILED install.out >> $OUTPUT
grep successful install.out >> $OUTPUT
if [ $? -ne 0 ]
then
  cat $OUTPUT | mutt -s "MESA test failed during install" paxton@kitp.ucsb.edu
	exit 1
fi
echo >> $OUTPUT

echo \*\*\*\*\*\*\* RUN TESTS \*\*\*\*\*\*\*
echo \*\*\*\*\*\*\* RUN TESTS \*\*\*\*\*\*\* >> $OUTPUT

cd star/test_suite
./each_test_run

echo \*\*\*\*\*\*\* report \*\*\*\*\*\*\*
echo \*\*\*\*\*\*\* report \*\*\*\*\*\*\* >> $OUTPUT
./report >> $OUTPUT

echo \*\*\*\*\*\*\* send email and all done \*\*\*\*\*\*\*
echo \*\*\*\*\*\*\* send email and all done \*\*\*\*\*\*\* >> $OUTPUT

cat $OUTPUT | mutt -s "MESA test $DATE, version $VERSION" paxton@kitp.ucsb.edu

exit

#notes on mutt for sending emails:
#sends email with the results for us to check
#use mutt to send attachments
#mutt -i filename puts filename into message body
#mutt -a filename attaches filename to message
#mutt -s subject
