#!/bin/sh
#
# Clean up the mysql databases

DSPAMCONF=/etc/dspam/dspam.conf
MYSQLCONF=/etc/dspam/dspam.d/mysql.conf
PURGE=/usr/share/doc/libdspam7-drv-mysql/purge-4.1.sql
MYSQLCONF_PASSWD=/var/run/libdspam7-drv-mysql.cron.passwd

if grep -q "^StorageDriver.*mysql_drv.so" $DSPAMCONF; then
  if [ -x /usr/bin/mysql ]; then
    MYSQL_USER="`grep "^MySQLUser" $MYSQLCONF | awk '{print $2}'`"
    MYSQL_PASS="`grep "^MySQLPass" $MYSQLCONF | awk '{print $2}'`"
    MYSQL_DB="`grep "^MySQLDb" $MYSQLCONF | awk '{print $2}'`"
    MYSQL_HOST="`grep "^MySQLServer" $MYSQLCONF | awk '{print $2}'`"

    UMASK_OLD="`umask`"
    umask 077
    [ -e "$MYSQLCONF_PASSWD" ] && rm "$MYSQLCONF_PASSWD"
    echo -e "[client]\npassword=$MYSQL_PASS" > "$MYSQLCONF_PASSWD"
    umask "$UMASK_OLD"

    # If host is empty or starting with a / assume it's localhost.
    if [ -z "$MYSQL_HOST" ] || \
       [ ` echo "${MYSQL_HOST}" | cut -c1 ` = "/" ]; then
        /usr/bin/mysql --defaults-extra-file=$MYSQLCONF_PASSWD \
	               --user=$MYSQL_USER $MYSQL_DB < $PURGE
    else
        if echo "$MYSQL_HOST" | grep "^/" > /dev/null 2>&1 ; then
            # Assume it is a socket:
            /usr/bin/mysql --defaults-extra-file=$MYSQLCONF_PASSWD --socket=$MYSQL_HOST --user=$MYSQL_USER < $PURGE
        else
            /usr/bin/mysql --defaults-extra-file=$MYSQLCONF_PASSWD --host=$MYSQL_HOST --user=$MYSQL_USER < $PURGE
        fi
    fi

    rm "$MYSQLCONF_PASSWD"

  fi
fi

exit 0

