#! /bin/bash
# (c) by Hajtech GmbH, 2018


# Include defaults if available
if [ -f /etc/default/hosting-tools ]; then
    . /etc/default/hosting-tools
fi

if [ -z "$1" ] || [ ! -f "$1" ]; then
  echo "Usage: $0 credentials_or_env_file"
  exit 1
fi

. "$1"

if [[ $1 =~ /\.env$ ]]; then

    if [ ! -z "${SS_DATABASE_NAME}" ] && [ ! -z "${SS_DATABASE_USERNAME}" ] && [ ! -z "${SS_DATABASE_PASSWORD}" ] && [ "${SS_DATABASE_USERNAME}" != "root" ]; then
        echo "  Configure MySQL server (.env file $1) for Silverstripe:"
        echo "  Database: mysql://${SS_DATABASE_USERNAME}@localhost/${SS_DATABASE_NAME}"
        /usr/local/bin/createMysqlUser "${SS_DATABASE_NAME}" "${SS_DATABASE_USERNAME}" "${SS_DATABASE_PASSWORD}"
    elif [ ! -z "${DATABASE_NAME}" ] && [ ! -z "${DATABASE_USERNAME}" ] && [ ! -z "${DATABASE_PASSWORD}" ] && [ "${DATABASE_USERNAME}" != "root" ]; then
        echo "  Configure MySQL server (.env file $1):"
        echo "  Database: mysql://${DATABASE_USERNAME}@localhost/${DATABASE_NAME}"
        /usr/local/bin/createMysqlUser "${DATABASE_NAME}" "${DATABASE_USERNAME}" "${DATABASE_PASSWORD}"
    else
        echo "  ERROR >>> Cannot configure mysql - incomplete or invalid configuration."
        echo "  Aborting."
        exit 1
    fi
else
    echo "  Configure MySQL server (credentials file $1):"
    for ID in ${!DATABASES[@]}; do
        if [ "${USERNAMES[$ID]}" ] && [ "${PASSWORDS[$ID]}" ]; then
            echo "  Database: mysql://${USERNAMES[$ID]}@localhost/${DATABASES[$ID]}"
            /usr/local/bin/createMysqlUser "${DATABASES[$ID]}" "${USERNAMES[$ID]}" "${PASSWORDS[$ID]}"
        else
            echo "  ERROR >>> Cannot configure mysql://${USERNAMES[$ID]}@localhost/${DATABASES[$ID]} - incomplete or invalid configuration."
            echo "  Skipping."
        fi
    done
fi
