#!/bin/sh
set -e

. /usr/share/debconf/confmodule

detect_webservers()
{
    WEB_SERVERS=""

    if dpkg-query -W -f='${Status}' apache2 2>/dev/null |
        grep -q 'install ok installed'; then
        WEB_SERVERS="$WEB_SERVERS apache2"
    fi

    if dpkg-query -W -f='${Status}' nginx 2>/dev/null |
        grep -q 'install ok installed'; then
        WEB_SERVERS="$WEB_SERVERS nginx"
    fi

    if dpkg-query -W -f='${Status}' lighttpd 2>/dev/null |
        grep -q 'install ok installed'; then
        WEB_SERVERS="$WEB_SERVERS lighttpd"
    fi

    WEB_SERVERS="${WEB_SERVERS# }"
}

db_get yms/db-name
DB_NAME="$RET"

db_get yms/db-user
DB_USER="$RET"

db_get yms/db-password
DB_PASSWORD="$RET"

echo "Configuring YMS..."
echo "Checking MariaDB database '${DB_NAME}'..."

if mariadb -N -B -e "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '${DB_NAME}'" | grep -Fxq "${DB_NAME}"; then
    echo "Database '${DB_NAME}' already exists."
else
    echo "Database '${DB_NAME}' does not exist."
    echo "Creating database '${DB_NAME}'..."
    mariadb -e "CREATE DATABASE \`${DB_NAME}\`"
    echo "Database '${DB_NAME}' created."
    echo "Initializing database schema..."
    mariadb "${DB_NAME}" < /usr/share/yms/db/mariadb.sql
    mariadb "${DB_NAME}" < /usr/share/yms/db/minimal.sql
    echo "Database schema initialized."
fi

db_get yms/webgui
if [ "$RET" = "true" ]; then

    detect_webservers
    case "$WEB_SERVERS" in
    "")
        echo "No supported webserver installed."
        ;;
    apache2)
        echo "Apache detected."
        a2enconf yms
        invoke-rc.d apache2 reload
        echo "Web GUI for apache2 enabled."
        ;;
    nginx)
        echo "nginx detected."
        ;;
    lighttpd)
        echo "lighttpd detected."
        ;;
    *)
        echo "Multiple webservers detected: $WEB_SERVERS"
        ;;
    esac

    if [ ! -f /etc/yms/config.inc ]; then
        # create initial configuration
        sed \
            -e "s|@DB_USERNAME@|$DB_USER|g" \
            -e "s|@DB_PASSWORD@|$DB_PASSWORD|g" \
            -e "s|@DB_SCHEMA@|$DB_NAME|g" \
            /usr/share/yms/config.inc-sample \
            > /etc/yms/config.inc
        chmod 0640 /etc/yms/config.inc
        chown root:www-data /etc/yms/config.inc
        ln -s /etc/yms/config.inc /usr/share/yms/webgui/config.inc
    fi

fi

exit 0
