#!/bin/bash
set -e

cd $(dirname $0)/..

# load .env
if [ -f .env ]
then
  # exclude WELCOME_MESSAGE && WELCOME_FOOTER because it may contain invalid characters
  export $(cat .env | sed 's/#.*//g' | grep -v "WELCOME_FOOTER" | grep -v "WELCOME_MESSAGE" | xargs)
fi

# check for non-optional environment variables,
# which got introduced later and may miss in existing
# .env files during upgrades
if [ -z "$EXTERNAL_IPv4" ]; then
    echo "ERROR: EXTERNAL_IPv4 is not set in .env"
    echo "BBB won't work without it."
    echo "this can happen if you did an manual upgrade without executing"
    echo "   ./scripts/upgrade"
    echo "try to run it again"
    exit 1
fi

# set conditional variables
export CERTIFICATE_DOMAINS=$DOMAIN
export GREENLIGHT_ENDPOINT=https://$DOMAIN/bigbluebutton/api/
if [ "$DEV_MODE" == true ]; then
    export CERTIFICATE_DOMAINS="invalid"
    export GREENLIGHT_ENDPOINT=http://10.7.7.1:8080/bigbluebutton/api/
fi
if [ ! -z "$EXTERNAL_IPv6" ]; then
    export HTTPS_SITE_FILE="site.conf"
else
    export HTTPS_SITE_FILE="site-ipv4only.conf"
fi

# concatenate docker-compose file
COMPOSE_FILES="-f docker-compose.yml"
if [ "$ENABLE_HTTPS_PROXY" == true ]; then
    COMPOSE_FILES="$COMPOSE_FILES -f docker-compose.https.yml"
fi

if [ "$ENABLE_COTURN" == true ]; then
    COMPOSE_FILES="$COMPOSE_FILES -f docker-compose.coturn.yml"
fi

if [ "$ENABLE_GREENLIGHT" == true ]; then
    COMPOSE_FILES="$COMPOSE_FILES -f docker-compose.greenlight.yml"
fi

if [ "$ENABLE_WEBHOOKS" == true ]; then
    COMPOSE_FILES="$COMPOSE_FILES -f docker-compose.webhooks.yml"
fi

if [ "$ENABLE_PROMETHEUS_EXPORTER" == true ]; then
    COMPOSE_FILES="$COMPOSE_FILES -f docker-compose.prometheus.yml"
fi

if [ "$ENABLE_RECORDING" == true ]; then
    COMPOSE_FILES="$COMPOSE_FILES -f docker-compose.recordings.yml"
fi

docker-compose $COMPOSE_FILES $@