#!/bin/bash

# Verifica si el script está corriendo como root
if [ "$EUID" -eq 0 ]; then
    echo -e "\033[31m[ERROR] No es posible ejecutar como root\033[0m"
    exit 1
fi

PROYPATH=$( cd "$(dirname "${BASH_SOURCE[0]}")/../" ; pwd -P )

# Parámetro de ingreso
CMD=$(echo "$1" | awk '{print tolower($0)}')

function mostrarAyuda() {
    echo -e "\033[33m  --------------------------------------------\033[0m"
    echo -e "\033[33m    Script para iniciar el docker de Metricas \033[0m"
    echo -e "\033[33m  --------------------------------------------\033[0m"
    echo ""
    echo -e "\033[37m  # sh run.sh [off]\033[0m"
    echo ""
    exit 0
}


function configurarEntorno() {
    sudo setfacl -R -m u:apache:rwx /etc/sistemas
    sudo setfacl -R -m u:apache:rwx $PWD/../writable

    if [[ ! $(sudo docker network ls | grep production) ]]; then
        sudo docker network create -d bridge --subnet 192.168.70.0/24 -o "com.docker.network.bridge.name=prod0" production
    fi;

    if [ ! -f $PROYPATH/.env ]; then
        echo -e "\033[33mRunning without .env file\033[0m"
    fi;
}

function bajarContenedor() {
    sudo docker compose -f $PROYPATH/docker/docker-compose.yaml down
}

function levantarContenedor() {
    sudo -E docker compose -f $PROYPATH/docker/docker-compose.yaml up -d
}

# Comando por defecto
if [ ! $CMD ]; then
    CMD="up"
fi

case $CMD in

    -h|--help|help|ayuda|--ayuda)
        mostrarAyuda
    ;;

    off|kill|down)
        bajarContenedor
    ;;

    up|on|server)
        configurarEntorno
        levantarContenedor
    ;;

esac