#!/bin/bash

if [[ $(docker network ls -f name=proxynet | grep -w proxynet) ]]; then
  echo "Network proxynet already exists"
else
  echo "Creating network: proxynet"
  docker network create --driver=bridge proxynet >/dev/null 2>&1
fi

if [[ $(docker ps -f name=nginx-proxy-net | grep -w nginx-proxy-net) ]]; then
  echo "Nginx already running"
else
  echo "Start Nginx"
  if [[ $(docker ps -a -f name=nginx-proxy-net | grep -w nginx-proxy-net) ]]; then
    docker start nginx-proxy-net >/dev/null 2>&1
  else
    docker run -d --network=proxynet --name=nginx-proxy-net -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro -v $(pwd)/vendor/artemevsin/docker-php/src/my_proxy.conf:/etc/nginx/conf.d/my_proxy.conf:ro jwilder/nginx-proxy >/dev/null 2>&1
  fi
fi

DOCKER_COMPOSE_LOCAL=$(pwd)/vendor/artemevsin/docker-php/src/docker-compose.yml
ENV_FILE=./../../../../.env
PROJECT_NAME=$(cat .env | grep "PROJECT_NAME=" | grep -o "=.*" | cut -d'=' -f 2)

# CREATE DATABASE VOLUME IF NOT EXISTS
if [[ ! $(docker volume ls | grep "database_${PROJECT_NAME}") ]]; then
    docker volume create --name="database_${PROJECT_NAME}"
fi


#echo $DOCKER_COMPOSE_LOCAL
#exit

echo "Starting containers..."

docker-compose -p $PROJECT_NAME -f $DOCKER_COMPOSE_LOCAL up -d --force-recreate --build #>/dev/null 2>&1
VHOST=$(docker exec -i ${PROJECT_NAME}_webserver_1 printenv VIRTUAL_HOST)

# xdebug remote host
XDEBUG_REMOTE_HOST=$(docker network inspect proxynet | grep 'Gateway' | grep -ohE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')
docker exec -i ${PROJECT_NAME}_webserver_1 bash -c "echo 'xdebug.remote_host = ${XDEBUG_REMOTE_HOST}' > /usr/local/etc/php/conf.d/xdebug_remote_host.ini"
docker exec ${PROJECT_NAME}_webserver_1 service apache2 reload

echo "-------------------------------------------------------------------------------"
echo "                        Container is available at ${VHOST}                     "
echo "-------------------------------------------------------------------------------"