#!/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.7: " SVWSVERSION
echo
read -p  "Die IP des LXCs eingeben: " SERVERNAME
echo
read -p  "Das MariaDB ROOT PASSWORD eingeben: " MariaDB_ROOT_PASSWORD
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:$MariaDB_ROOT_PASSWORD:" >> schulungen.txt
    echo "$SVWSVERSION:pc-$NUMMER-SVWS-Server:$SERVERNAME:netzlaufwerk" >> schulungen.txt
done
cp schulungen.txt /var/www/html
cp schulungen.txt /var/www/html/sh
cp schulungen.txt /var/www/html/docker
###############################################################
cd /root
###############################################################
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}')
  SVWSServer=$(echo $ZEILE | awk -F : '{print $11}')
  SERVERNAME=$(echo $ZEILE | awk -F : '{print $12}')
  Pfad=$(echo $ZEILE | awk -F : '{print $13}') 
#
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}SVWSServer:${GELB}$SVWsServer ${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-pi.zip
  unzip docker-compose-pi.zip
  rm docker-compose-pi.zip
sleep 3
####################################################################
### 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          ###
### SVWS-Server                                                  ###
sed -i 's/SvwsSERVER/'$SVWSServer'/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}$WebServerName${WEISS} und${GELB}$STACK-svws-server-1${WEISS} und ${GELB}$STACK-mariadb-1 ${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
sleep 2
###################################################################################################################################################################################################################
cd /var/www/html/inc/status-links                                                                                                                                                                               ###
anzahl="$ENDE"                                                                                                                                                                                                  ###
LOCALEIP="$SERVERNAME"                                                                                                                                                                                          ###
dateiname="pcs.inc.php"
inhalt=""

# Datei leeren oder neu anlegen
> "$dateiname"

# Schleife von 1 bis $anzahl
i=1
while [ "$i" -le "$anzahl" ]; do
  pcNummer=$(printf "%02d" "$i")

  cat <<EOF >> "$dateiname"
<!-- ANFANG pc-$pcNummer -->
<tr> 
  <td class="w3-border"><b>pc-$pcNummer</b></td>
  <td class="w3-border"><a href="https://$LOCALEIP:81$pcNummer/laufbahnplanung/index.html" target="_blank">&nbsp;&nbsp;&nbsp;<img src="png/laufbahn_neu.png" class="w3-round" alt="laufbahn_neu.png"></a></td>
  <td class="w3-border"><a href="https://$LOCALEIP:81$pcNummer/index.html" target="_blank">&nbsp;&nbsp;<img src="png/wenom_neu.png" class="w3-round" alt="wenom_neu.png"></a></td>
  <td class="w3-border"><iframe src="docker/pc-$pcNummer/webserver.html" width="45" height="40" frameborder="0"></iframe></td>
  <td class="w3-border"><iframe src="docker/pc-$pcNummer/webserver_start_stop.php" width="245" height="40" frameborder="1"></iframe></td>
  <td class="w3-border"><a href="https://$LOCALEIP:100$pcNummer/" target="_blank">&nbsp;<img src="png/svws_neu.png" class="w3-round" alt="svws_neu.png"></a></td>
  <td class="w3-border"><iframe src="docker/pc-$pcNummer/svws-server.html" width="45" height="40" frameborder="0"></iframe></td>
  <td class="w3-border"><iframe src="docker/pc-$pcNummer/svws-server_start_stop.php" width="245" height="40" frameborder="1"></iframe></td>
  <td class="w3-border"><iframe src="docker/pc-$pcNummer/mariadb.html" width="45" height="40" frameborder="0"></iframe></td>
  <td class="w3-border"><iframe src="docker/pc-$pcNummer/mariadb_start_stop.php" width="245" height="40" frameborder="1"></iframe></td>
  <td class="w3-border"><a href="https://$LOCALEIP:90$pcNummer/" target="_blank">&nbsp;<img src="png/phpmyadmin.png" class="w3-round" alt="phpmyadmin.png"></a></td>
  <td class="w3-border"><iframe src="docker/pc-$pcNummer/PHPmyAdmin.html" width="45" height="40" frameborder="0"></iframe></td>
  <td class="w3-border"><iframe src="docker/pc-$pcNummer/PHPmyAdmin_start_stop.php" width="245" height="40" frameborder="1"></iframe></td>
</tr>
<!-- ENDE pc-$pcNummer -->
EOF

  i=$((i + 1))
done
chown -R www-data:www-data /var/www/html/inc/status-links
echo
echoo -e -n "${WEISS}Datei ${GELB}$dateiname${WEISS} mit $anzahl Einträgen wurde erfolgreich erstellt."
echo
sleep 2
###################################################################################################################################################################################################################
cd /root
done  < schulungen.txt
######################################################################################
echo                                                                               ### 
echo -e -n "${HELLGRAU}### Installation der Statusanzeige im WebProjekt ### ${NC}" ### 
echo                                                                               ###
bash Status-Anzeige-Install.sh                                                     ###
echo                                                                               ###  
echo -e -n "${HELLGRUEN} OK ${NC}"                                                 ###
echo                                                                               ###
######################################################################################
bash docker-schemata.sh
