#!/bin/sh
#
#*********************
# variables
#*********************
# Change TREE to be your local tree area
TREE="/mnt/src"
# Change MAILLIST to be address of where you want a email record to be sent
#MAILLIST="root"
MAILLIST="csieh@fnal.gov"
# Change ARCHES to include the arches you wish to copy
#ARCHES="i386 x86_64 ia64"
ARCHES="i386"
#*********************
VERSION=307
SOURCEHOST="ftp.scientificlinux.org"
PRODUCT=scientific
SOURCEDIR="linux/$PRODUCT/$VERSION"
DESTDIR="$TREE/$PRODUCT/$VERSION"
SCRIPT="rsync.$VERSION"
LOGFILE="/var/log/rsync.log"
MAILFILE="/tmp/$SCRIPT.mailfile"
TEMPFILE="/tmp/$SCRIPT"

#*********************
# Do The Work
#*********************
rm -f $TEMPFILE
for arch in $ARCHES
do
   if [ ! -d $DESTDIR/$arch ] ; then
      mkdir -p $DESTDIR/$arch
      if [ $? -eq 0 ] ; then 
	echo "Now about to create directory $DESTDIR/$arch , Verify that you "
	echo "have set TREE correctly in this script and you have write  "
	echo "permission to create this directory "
	exit 1
      fi
   fi
   if [ ! -d $DESTDIR/$arch/sites/example ] ; then
      mkdir -p $DESTDIR/$arch/sites/example
      if [ $? -eq 0 ] ; then 
	echo "Now about to create directory $DESTDIR/$arch/sites/example , Verify that you "
	echo "have set TREE correctly in this script and you have write  "
	echo "permission to create this directory "
	exit 1
      fi
   fi
   echo "$DESTDIR/$arch/ ">> $TEMPFILE
   /usr/bin/rsync $1 -avzl --delete --exclude=sites/ $SOURCEHOST::$SOURCEDIR/$arch/ $DESTDIR/$arch/  >> $TEMPFILE 2>&1
   /usr/bin/rsync $1 -avzl --delete $SOURCEHOST::$SOURCEDIR/$arch/sites/example/ $DESTDIR/$arch/sites/example/  >> $TEMPFILE 2>&1
done

#*********************
# Log It and Mail It if necessary
#*********************
if [ -s $TEMPFILE ] ; then
	# Make the mail/log file
	HOST="$(uname -n)"
	echo "**************************" > $MAILFILE
	echo "Rsync changes" >> $MAILFILE
	echo "Script: $SCRIPT" >> $MAILFILE
	echo "Source: $SOURCEHOST::$SOURCEDIR  Destination: $HOST:$DESTDIR" >> $MAILFILE
	date >> $MAILFILE
	echo "**************************" >> $MAILFILE
	cat $TEMPFILE >> $MAILFILE

	# Mail it
	if [ "$1" = "-n" ] ; then
		/bin/mail -s "TEST RSYNC: $SOURCEHOST::$SOURCEDIR to $DESTDIR" $MAILLIST < $MAILFILE
	else
		/bin/mail -s "RSYNC: $SOURCEHOST::$SOURCEDIR to $DESTDIR" $MAILLIST < $MAILFILE
	fi

	# Log it
	cat $MAILFILE >> $LOGFILE	
fi
