#!/bin/bash
#################################
### SQliteDatenbankSchematas  ###
### in Maridb Schreiben       ###  
### Erstellt von Theo Richter ###
### am 15.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
MariaDBPort=""
WebserverPortHTTP=""
WebserverPortHTTPS=""
PHPmyAdminPort=""
SVWSPort=""
SVWSVersion=""
STACK=""
MariaDB_ROOT_PASSWORD=""
PHPmyAdminName=""
WebserverName=""ANFANG=""
ENDE=""
NUMMER=""
SVWSVERSION=""
###############################################################
### Die Steuerdatei: schulungen.txt ausfuellen ################
###############################################################
echo
echo -e -n "${HELLBLAU}Die aktuelle SVWS-Version eintragen. ${NC}"
echo
read -p  "Die aktuelle SVWS-Version z.B. 1.0.5: " SVWSVERSION
echo
echo -e -n "${HELLBLAU}Die Anzahl der PCs(STACKS).  ${NC}"
echo
read -p  "Nummer des ersten Rechners: " ANFANG
read -p  "Nummer des lezten Rechners: " ENDE
################################################################################################################################################################################################
# echo
# echo -e -n "${HELLBLAU}STACK:MariaDBPort:WebserverPortHTTP:WebserverPortHTTPS:WebserverName:PHPmyAdminPort:PHPmyAdminName:SVWSPort:MariaDB_ROOT_PASSWORD:SVWSVersion:SERVERNAME:Pfad  ${NC}" #
# echo
################################################################################################################################################################################################
for (( i=$ANFANG; i<= $ENDE; i++));
do
    # einstellige Zahlen sollen mit fuehrender 0 ausgegeben werden, z.B. 05
    if [ $i -lt 10 ];
    then NUMMER="0${i}"
    else
	NUMMER="${i}"
    fi
    # Hier wird die Ausgabe zusammengestrickt
    echo -n "pc-$NUMMER:30$NUMMER:80$NUMMER:81$NUMMER:" >> schulungen.txt
    echo -n "pc-$NUMMER-Webserver:90$NUMMER:" >> schulungen.txt
    echo -n "pc-$NUMMER-PHPmyAdmin:100$NUMMER:root:" >> schulungen.txt
    echo "$SVWSVERSION:10.1.0.3:netzlaufwerk" >> schulungen.txt
done
###############################################################
###############################################################
while read ZEILE; do
  STACK=$(echo $ZEILE | awk -F : '{print $1}')
  MariaDBPort=$(echo $ZEILE | awk -F : '{print $2}')
  WebServerPortHTTP=$(echo $ZEILE | awk -F : '{print $3}')
  WebServerPortHTTPS=$(echo $ZEILE | awk -F : '{print $4}')
  WebServerName=$(echo $ZEILE | awk -F : '{print $5}')
  PHPmyAdminPort=$(echo $ZEILE | awk -F : '{print $6}')
  PHPmyAdminName=$(echo $ZEILE | awk -F : '{print $7}')
  SVWSPort=$(echo $ZEILE | awk -F : '{print $8}')
  MariaDB_ROOT_PASSWORD=$(echo $ZEILE | awk -F : '{print $9}')
  SVWSVersion=$(echo $ZEILE | awk -F : '{print $10}')
  SERVERNAME=$(echo $ZEILE | awk -F : '{print $11}')
  Pfad=$(echo $ZEILE | awk -F : '{print $12}') 
#
echo
echo -e -n "${HELLGRAU}STACK:${GELB}$STACK ${HELLGRAU}MariaDBPort:${GELB}$MariaDBPort ${HELLGRAU}WebserverPortHTTP:${GELB}$WebserverPortHTTP ${NC}"
echo
echo -e -n "${HELLGRAU}WebserverPortHTTPS:${GELB}$WebserverPortHTTPS${HELLGRAU}WebserverName:${GELB}$WebserverName ${HELLGRAU}PHPmyAdminPort:${GELB}$PHPmyAdminPort ${NC}"
echo
echo -e -n "${HELLGRAU}PHPmyAdminName:${GELB}$PHPmyAdminName  ${HELLGRAU}SVWSPort:${GELB}$SVWSPort ${HELLGRAU}MariaDB_ROOT_PASSWORD:${GELB}$MariaDB_ROOT_PASSWORD  ${NC}" 
echo
echo -e -n "${HELLGRAU}SVWSVersion:${GELB}$SVWSVersion ${HELLGRAU}SERVERNAME:${GELB}$SERVERNAME ${HELLGRAU}Pfad:${GELB}$Pfad ${NC}"
echo
#
  mkdir $STACK
  cd $STACK
  wget -q --show-progress http://web.webolch.de/bauanleitung/downloads/linux/zip/docker-compose-svws-mit-wenom.zip
  unzip docker-compose-svws-mit-wenom.zip
###  rm docker-compose-svws-mit-wenom.zip 
##ls -l
sleep 2
####################################################################
### 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/svwslatest/'$SVWSVersion'/g' docker-compose.yml        ###
### SVWSPort                                                     ###
sed -i 's/00005/'$SVWSPort'/g' docker-compose.yml                ###
####################################################################
#
docker compose up -d
#
echo
echo -e -n "${WEISS}### Stoppen der docker-container ${GELB}$PHPmyAdminName ${WEISS} und ${GELB}$STACK-svws-server-1 ${GELB}$STACK-mariadb-1 ${WEISS} und ${GELB}$WebserverName ${WEISS}### ${NC}" 
echo
docker stop $PHPmyAdminName 
docker stop $WebserverName 
docker stop $STACK-mariadb-1
docker stop $STACK-svws-server-1 
echo
echo -e -n "${HELLGRUEN} OK ${NC}" 
echo
cd /root
done  < schulungen.txt
################################################################################ 
bash docker-schemata.sh