#! /bin/bash

GLOBALFILE=
while true
do
  case $1 in
    -f) GLOBALFILE=$2
		  shift 2
		  ;;
     *)
		break
		;;
  esac
done

if [ -f <CONFIGDIR>/$GLOBALFILE ]
then
	. <CONFIGDIR>/$GLOBALFILE
elif [ -n "$GLOBALFILE" ]
then
	echo "<CONFIGDIR>/$GLOBALFILE introuvable !"
	exit 1
elif [ -f <CONFIGDIR>/globals?*.sh ]
then
	. <CONFIGDIR>/globals?*.sh
else
	. <CONFIGDIR>/globals.sh
fi

case $DEBUG in
  1) set -x
     ;;
  *)
     ;;
esac

date=`date '+%Y-%m-%d'`
export LOGFILE=${LOGDIR}/${APPLICATION}_${date}.log

error() {
		echo "ERROR:chargement.sh:$date: $1" 1>&2
		echo "ERROR:chargement.sh:$date: $1" >> $LOGFILE
}

exec_sql() {
	exec-sql.sh -H ${DBHOST} -d ${DBNAME} -u "${DBUSER}" -p "${DBPWD}" -l $LOGFILE -c "$1"
	if [ $? -ne 0 ]
		then
		error "cannot execute '$1' on ${DBNAME}@${DBHOST}"
	fi
}

TMPDIR=/tmp/`whoami`
mkdir -p ${TMPDIR}
if [ $? -ne 0 ]
then
	error "cannot mkdir -p ${TMPDIR}"
	exit 1
fi

LOCKFILE=${TMPDIR}/`basename $0 .sh`_${APPLICATION}.lock

if [ -f ${LOCKFILE} ]
then
	error "$0 already running ..."
	exit 1
fi

# BEGIN
touch ${LOCKFILE}

# DUMP
srcdb=${DBNAME}@${DBHOST}
DUMPDIR=/home/${CRONUSER}/dump/
mkdir -p $DUMPDIR
err=0

exec_sql "vacuum full analyze;"

find ${DUMPDIR} -name dump_${srcdb}_'*'.sql.gz -mtime +15 -exec rm -f {} \; -print >> $LOGFILE;

echo "`date` : dump $srcdb"
dump=${DUMPDIR}/dump_${srcdb}_${date}.sql
dump-db.sh -H ${DBHOST} -d ${DBNAME} -u "${DBUSER}" -p "${DBPWD}" -l $LOGFILE > $dump
if [ $? -ne 0 ]
then
	error "cannot dump $srcdb"
	err=1
else
	gzip -f $dump &
fi

clean-db -f /home/crm/src/crm/src/xml/crm.pgml -d ${DBNAME}@${DBHOST} -u ${DBUSER} -p ${DBPWD} -s -l ${LOGFILE} 2>&1 | grep -v NOTICE

echo "clean up tex tmp files..."
rm -f $TEXWORKDIR/tmp*

# END
rm -f ${LOCKFILE}
exit $err

