#!/bin/bash
#################################
# Docker fuer mehrere Container #
### Test Datenbankschematas   ###
### Fuer alle Schulformen     ###
### Webserver, SVWS-Server    ###
### mariadb, phpmyadmin       ###  
### Erstellt von Theo Richter ###
### am 17.10.2024     (c)     ###
#################################
### Farbdefinitionen ####
#   TEXT in Weiss       #
#   DATEIEN in Gelb     #
#   ORDNER in HellBlau  #
#########################
# Farbdefinitionen zur Ausgabe #
ROT='\033[0;31m' 
HELLROT='\033[1;31m'
GRUEN='\033[0;32m'
HELLGRUEN='\033[1;32m'
GELB='\033[1;33m'
BLAU='\033[0;34m'
HELLBLAU='\033[1;34m'
LILA='\033[0;35m'
HELLLILA='\033[1;35m'
DUNKELESTUERKIS='\033[0;36m'
TUERKIS='\033[1;36m'
HELLGRAU='\033[0;37m'
WEISS='\033[1;37m'
NC='\033[0m' # No Color
#
# Pruefen on der Benutzer root oder sudo ist
if ! [ $( id -u ) = 0 ]; then
    echo -e -n "${HELLROT}Bitte fuehren Sie dieses Script als root im root-Verzeichniss aus! ${NC}" 1>&2
    echo
    exit 1
fi
#
### [Variablen]
##
#
MariaDBPortStart="3000"
WebserverPortHTTPStart="8000"
WebserverPortHTTPSStart="8100"
PHPmyAdminPortStart="9000"
SVWSPortStart="10000"
SVWSVersion="1.0.0"
AnzahlContainer=""
Verzeichnissname=""
MariaDB_ROOT_PASSWORD=""
WebserverName=""
PHPmyAdminName=""
#
##
## Anzahl der Docker-Container
##
#
echo
echo -e -n "${TUERKIS}Anzahl der Docker Container Eingeben! ${NC}"
echo
if [ -z "${AnzahlContainer}" ]; then
      read -p "Hier BITTE die Anzahl der docker container (z.B. 2) Eingeben: " AnzahlContainer
fi
echo
echo -e -n "${HELLBLAU}Anzahl DOCKER Container=$AnzahlContainer ${NC}"
#
for (( a=1; a<=$AnzahlContainer; a++ ))
do
##### Ports Hochzaehlen ######
MariaDBPort=$(($MariaDBPortStart + $a))
WebserverPortHTTP=$(($WebserverPortHTTPStart + $a))
WebserverPortHTTPS=$(($WebserverPortHTTPSStart + $a))
PHPmyAdminPort=$(($PHPmyAdminPortStart + $a))
SVWSPort=$(($SVWSPortStart + $a))
WebserverName="$Verzeichnissname-webserver-$a"
PHPmyAdminName="$Verzeichnissname-PHPmyAdmin-$a"
echo
echo -e -n "${HELLBLAU}MariaDBPort=$MariaDBPort ${NC}"
echo
echo -e -n "${HELLBLAU}WebserverPortHTTP=$WebserverPortHTTP ${NC}"
echo
echo -e -n "${HELLBLAU}WebserverPortHTTPS=$WebserverPortHTTPS ${NC}"
echo
echo -e -n "${HELLBLAU}PHPmyAdminPort=$PHPmyAdminPort ${NC}"
echo
echo -e -n "${HELLBLAU}SVWSPort=$SVWSPort ${NC}"
echo
#
##
## [Argumente auslesen]
##
#
if [ -z "${Verzeichnissname}" ]; then
      read -p "Hier BITTE den Verzeichnissname Eingeben: " Verzeichnissname
fi
echo -e -n "${HELLROT}Verzeichnissname=$Verzeichnissname ${NC}"
echo
if [ -z "${MariaDB_ROOT_PASSWORD}" ]; then
    # Festlegen des MariaDB "Root" Passwort
    while true; do
        echo
        read -s -p "Eingabe des MariaDB root Passworts. AUFSCHREIBEN NICHT VERGESSEN!: " MariaDB_ROOT_PASSWORD
        echo
        read -s -p "Zur Kontrolle erneute Eingabe des MariaDB root Passworts: " PROMPT2
        echo
        [ "${MariaDB_ROOT_PASSWORD}" = "${PROMPT2}" ] && break
        echo -e "${RED}Die Eingaben waren nicht identisch. Neuer Versuch! ${NC}" 1>&2
    done
else
    echo -e "${BLUE}Das MariaDB root Passwort wurde Vorgegeben. ${NC}"
fi
###if [ -z "${SVWSVersion}" ]; then
###      read -p "Hier den SVWSVersion (z.B. 0.9.4) Eingeben: " SVWSVersion
###fi
###echo -e -n "${HELLGREEN}SVWSVersion=$SVWSVersion ${NC}"
##echo
mkdir $Verzeichnissname
cd $Verzeichnissname
wget -q --show-progress https://github.com/SVWS-NRW/SVWS-Server/releases/download/v$SVWSVersion/SVWS-Laufbahnplanung-$SVWSVersion.zip
wget -q --show-progress http://web.webolch.de/bauanleitung/downloads/linux/zip/docker-compose.zip
unzip docker-compose.zip
rm docker-compose.zip 
###ls -l
sleep 1
####################################################################
### Wird benoetigt um die Ports im docker-compos.yml zu Aendern. ###
####################################################################
### MariaDBPort                                                  ###
sed -i 's/00001/'$MariaDBPort'/g' docker-compose.yml             ###
### MariaDB root Passwort                                        ###
sed -i 's/leer/'$MariaDB_ROOT_PASSWORD'/g' .env                  ###
### WebserverName                                                ###
sed -i 's/WebserverName/'$WebserverName'/g' docker-compose.yml   ###
### WebserverPortHTTP                                            ###
sed -i 's/00002/'$WebserverPortHTTP'/g' docker-compose.yml       ###
### WebserverPortHTTPS                                           ###
sed -i 's/00003/'$WebserverPortHTTPS'/g' docker-compose.yml      ###
### PHPmyAdminName                                               ###
sed -i 's/PHPmyAdminName/'$PHPmyAdminName'/g' docker-compose.yml ###
### PHPmyAdminPort                                               ###
sed -i 's/00004/'$PHPmyAdminPort'/g' docker-compose.yml          ###
### SVWSVersion                                                  ###
sed -i 's/latest/'$SVWSVersion'/g' docker-compose.yml            ###
### SVWSPort                                                     ###
sed -i 's/00005/'$SVWSPort'/g' docker-compose.yml                ###
####################################################################
#
cd www
unzip ./$Verzeichnissname/SVWS-Laufbahnplanung-$SVWSVersion.zip
##rm  ./$Verzeichnissname/SVWS-Laufbahnplanung-$SVWSVersion.zip
cd ..
#
#
### Der Container wir Installiert!!###
#
echo
echo -e -n "${HELLLILA}Der Container mit Namen: $Verzeichnissname wird mit dem Befehl${HELLGRUEN} docker compose up -d ${HELLLILA} Installiert!! ${NC}"
echo
docker compose up -d
#
echo
echo -e -n "${HELLGRUEN}SVWSPort=$SVWSPort ${NC}"
echo
echo -e -n "${HELLROT}MYSQLROOTPW=$MariaDB_ROOT_PASSWORD ${NC}"
########################
cd ..
###wget -q --show-progress http://web.webolch.de/bauanleitung/downloads/linux/SH-Scripte/schulungs-schemata.sh
bash schulungs_schemata.sh 
########################
rm schulungs_schemata.sh 
SCHULFORM=""
Verzeichnissname=""
SVWSVersion=""
MariaDB_ROOT_PASSWORD=""
MariadbPort=""
#################################################################################################
###ls -l
###echo "SCHULFORM=$SCHULFORM; Verzeichnissname=$Verzeichnissname; SVWSVersion=$SVWSVersion"
###sleep 1
#################################################################################################
done
echo
echo -e -n "${HELLROT}Alles FERTIG!!! ${NC}"
echo