#!/bin/sh

[ -z "$1" ] && exit 0

MYSQL="/usr/clearos/sandbox/usr/bin/mysql"
MYSQLADMIN="/usr/clearos/sandbox/usr/bin/mysqladmin"

APP_NAME=$1
DB_CONFIG="/var/clearos/system_database/root"
APP_DB_CONFIG="/var/clearos/system_database/$APP_NAME"

if [ -z "$2" ]; then
    GROUP_NAME="root"
else
    GROUP_NAME="$2"
fi

# Start system database
#----------------------

/usr/clearos/apps/system_database/deploy/bootstrap

# Grab root database password
#----------------------------

ROOTPASS=`grep ^password $DB_CONFIG 2>/dev/null | sed "s/^password[[:space:]]*=[[:space:]]*//"`

if [ -z "$ROOTPASS" ]; then
    echo "Unable to authenticate with database"
    exit 1
fi

# Create databases (if necessary) 
#--------------------------------

$MYSQL -uroot -p"$ROOTPASS" -e 'status;' $APP_NAME >/dev/null 2>&1

if [ $? -ne 0 ]; then
    logger -p local6.notice -t installer "app-system-database-core - creating $APP_NAME database"
    $MYSQLADMIN -uroot -p"$ROOTPASS" --default-character-set=utf8 create $APP_NAME >/dev/null 2>&1
fi

# Add/Update database password
#-----------------------------

APP_PASSWORD=`grep ^password $APP_DB_CONFIG 2>/dev/null | sed "s/^password[[:space:]]*=[[:space:]]*//"`

if [ -z "$APP_PASSWORD" ]; then
    logger -p local6.notice -t installer "app-system-database-core - generating password"
    APP_PASSWORD=`openssl rand -base64 20`
    touch $APP_DB_CONFIG
    chmod 640 $APP_DB_CONFIG
    chown root.$GROUP_NAME $APP_DB_CONFIG
    echo "password = $APP_PASSWORD" >> $APP_DB_CONFIG
fi

APP_PASSWORD_SEDSAFE=`echo $APP_PASSWORD | sed 's/\//\\\\\//g'`

$MYSQL -uroot -p"$ROOTPASS" -e "GRANT ALL PRIVILEGES ON $APP_NAME.* TO $APP_NAME@localhost IDENTIFIED BY \"$APP_PASSWORD\" WITH GRANT OPTION;" $APP_NAME >/dev/null 2>&1
