#!/bin/bash
#
# Copyright (C) 2019 OX Software GmbH
# 
# This file is part of OX Automation.
#
# OX Automation is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# OX Automation is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# 
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OX Automation. If not, see <http://www.gnu.org/licenses/>.
#
#
# Authors:
# Benedikt Kroening <benedikt.kroening@open-xchange.com>
#
set -e
echo "all arguments: "$@
echo "0: "$0
echo "1: "$1

source /ox-installer/lib/common.bash

# The interactive bash environment is for debugging and config evaluation ... 
# Enter by:
# $ docker run -it --rm gitlab.open-xchange.com:4567/docker/open-xchange-docker/<image-name>:<tag> bash
# e.g.
# $ docker run -it --rm gitlab.open-xchange.com:4567/docker/open-xchange-docker/release-7-10-1/open-xchange-groupware:release-7.10.1 bash
if [[ "$1" == "bash" ]]; then
    echo "Starting interactive shell (unconfigured container environment)..."
    bash
    echo "Interactive shell stopped."
    exit 0;
fi

echo "Checking container config..."
if [ ! -f /opt/open-xchange/etc/configdb.properties ]; then
    echo "... Container config not found, copying default config from /opt/open-xchange/etc.dist/"
    cp -R /opt/open-xchange/etc.dist/* /opt/open-xchange/etc/
    chown -R open-xchange:open-xchange /opt/open-xchange/etc

fi


if [[ "$1" == "supervisord" ]]; then
    echo "Starting supervisord services ..."
    ls -lah /etc/supervisor/conf.d/
    supervisord -c /etc/supervisor/supervisord.conf
    # wait for services to be available ...
    sleep 10

    /ox-installer/config/init-middleware.sh
    
    /ox-installer/config/frontend/add-balancer.sh \
                --name "oxcluster" \
                --balancer "http://localhost:8009" \
                --route "$(hostname)" 

fi

# # Tailing OX Logs as container output
touch /var/log/open-xchange/open-xchange.log.0
tail -F /var/log/open-xchange/open-xchange.log.0

# Moved the touch/tail into its own script. This can be overriden by any child-container but will still ensure that the image will work ...
#/opt/open-xchange/docker/tail-ox-logs.sh