#!/bin/bash
#################################
### SQliteDatenbankSchematas  ###
### in Maridb Schreiben       ###  
### Erstellt von Theo Richter ###
### am 24.04.2025     (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=""
DB_NAME=""
DB_USER=""
DB_MYSQL_PW=""
SCHULFORM=""
BezReg="Arnsberg"
ANZAHL="8"
################################################################################ 
clear
########################################################################################################################################
while read ZEILE; do
  STACK=$(echo $ZEILE | awk -F : '{print $1}')
#
echo
echo -e -n "${WEISS}### Starten der Docker-Container ${GELB}$STACK-mariadb-1 ${WEISS}und ${GELB}$STACK-svws-server-1 ${WEISS}### ${NC}" 
echo
docker start $STACK-mariadb-1
docker start $STACK-svws-server-1
done < schulungen.txt
#
echo
echo -e -n "${HELLGRUEN} OK ${NC}" 
echo
sleep 3
################################################################################
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
#echo -e -n "${TUERKIS}Das Datenbanschemata ${GELB}svwsdb ${TUERKIS}wird geloescht! ${NC}"
#echo
#       curl --user "root:${MariaDB_ROOT_PASSWORD}" \
#	-k -X "POST" "https://${SERVERNAME}:${SVWSPort}/api/schema/root/destroy/svwsdb" \
#	-H "accept: application/json"
#
sleep 2
###################################################################################################################################################################
### ANFANG der for schleife #######################################################################################################################################
###################################################################################################################################################################
  for (( i=1; i<=$ANZAHL; i++ ))
  do
  if [[ "$i" == "1" ]]; then
   ############################################################################
   ### Angelegt der SQLITE Datenbankscehemata fuer die Schulform: Gymnasium ###
   ############################################################################
   SCHULFORM="Gymnasium"
   DB_NAME=Gymnasium_2HJ
   DB_USER=$DB_NAME
   DB_MYSQL_PW=$DB_NAME
   # SQLITE DatenbankPfad
   DB_PATH=/$Pfad/OfficelleTestDBS/$SCHULFORM/$DB_NAME.sqlite
  fi
  if [[ "$i" == "2" ]]; then
   ############################################################################
   ### Angelegt der SQLITE Datenbankscehemata fuer die Schulform: Gymnasium ###
   ############################################################################
   SCHULFORM="Gymnasium"
   DB_NAME=Gymnasium_FaecherSek2
   DB_USER=$DB_NAME
   DB_MYSQL_PW=$DB_NAME
   # SQLITE DatenbankPfad
   DB_PATH=/$Pfad/OfficelleTestDBS/$SCHULFORM/$DB_NAME.sqlite
  fi
  if [[ "$i" == "3" ]]; then
   SCHULFORM="Gymnasium"
   ############################################################################
   ### Angelegt der SQLITE Datenbankscehemata fuer die Schulform: Gymnasium ###
   ############################################################################
   DB_NAME=Gymnasium_LaufbahnenJG10
   DB_USER=$DB_NAME
   DB_MYSQL_PW=$DB_NAME
   # SQLITE DatenbankPfad
   DB_PATH=/$Pfad/OfficelleTestDBS/$SCHULFORM/$DB_NAME.sqlite
  fi
  if [[ "$i" == "4" ]]; then
   ############################################################################
   ### Angelegt der SQLITE Datenbankscehemata fuer die Schulform: Gymnasium ###
   ############################################################################
   SCHULFORM="Gymnasium"
   DB_NAME=Gymnasium_LaufbahnenJGEF
   DB_USER=$DB_NAME
   DB_MYSQL_PW=$DB_NAME
   # SQLITE DatenbankPfad
   DB_PATH=/$Pfad/OfficelleTestDBS/$SCHULFORM/$DB_NAME.sqlite
 fi
 if [[ "$i" == "5" ]]; then
   ############################################################################
   ### Angelegt der SQLITE Datenbankscehemata fuer die Schulform: Gymnasium ###
   ############################################################################
   SCHULFORM="Gymnasium"
   DB_NAME=Gymnasium_LaufbahnenJGEFMitBlockung
   DB_USER=$DB_NAME
   DB_MYSQL_PW=$DB_NAME
   # SQLITE DatenbankPfad
   DB_PATH=/$Pfad/OfficelleTestDBS/$SCHULFORM/$DB_NAME.sqlite
  fi
  if [[ "$i" == "6" ]]; then
   SCHULFORM="Gymnasium"
   ############################################################################
   ### Angelegt der SQLITE Datenbankscehemata fuer die Schulform: Gymnasium ###
   ############################################################################
   DB_NAME=Gymnasium_LaufbahnenJGEFvollst
   DB_USER=$DB_NAME
   DB_MYSQL_PW=$DB_NAME
   # SQLITE DatenbankPfad
   DB_PATH=/$Pfad/OfficelleTestDBS/$SCHULFORM/$DB_NAME.sqlite
  fi
  if [[ "$i" == "7" ]]; then
   ###############################################################################
   ### Angelegt der SQLITE Datenbankscehemata fuer die Schulform: Gesamtschule ###
   ###############################################################################
   SCHULFORM="Gesamtschule"
   DB_NAME=$SCHULFORM
   DB_USER=$SCHULFORM
   DB_MYSQL_PW=$SCHULFORM
   # SQLITE DatenbankPfad
   DB_PATH=/$Pfad/OfficelleTestDBS/$SCHULFORM/$SCHULFORM.sqlite
  fi
  if [[ "$i" == "8" ]]; then
   ##############################################################################
   ### Angelegt der SQLITE Datenbankscehemata fuer die Schulform: Grundschule ###
   ##############################################################################
   SCHULFORM="Grundschule"
   DB_NAME=$SCHULFORM
   DB_USER=$SCHULFORM
   DB_MYSQL_PW=$SCHULFORM
   # SQLITE DatenbankPfad
   DB_PATH=/$Pfad/OfficelleTestDBS/$SCHULFORM/$SCHULFORM.sqlite
  fi
  echo
  echo -e -n "${HELLROT}###!?!?!ACHTUNG DAS DAUERT JETZT ETWAS!?!?!###${WEISS}###!?!?!ACHTUNG DAS DAUERT JETZT ETWAS!?!?!###${HELLROT}###!?!?!ACHTUNG DAS DAUERT JETZT ETWAS!?!?!### ${NC}"
  echo
  echo -e -n "${WEISS}### ${TUERKIS}Anlegen des DatenbankSchemata Nummer: ${GELB}$i ${TUERKIS}von ${GELB}$ANZAHL ${TUERKIS}mit dem Namen: ${GELB}${DB_NAME} ${TUERKIS}im Docker-Container: ${GELB}$STACK ${WEISS}### ${NC}"
  echo
  sleep 4
echo
    curl --user "root:${MariaDB_ROOT_PASSWORD}" \
     -k --insecure \
     -X "POST" "https://${SERVERNAME}:${SVWSPort}/api/schema/root/import/sqlite/${DB_NAME}" \
     -H "accept: application/json" \
     -H "Content-Type: multipart/form-data" \
     -F "database=@${DB_PATH}" \
     -F "schemaUsername=${DB_USER}" \
     -F "schemaUserPassword=${DB_MYSQL_PW}" 
  clear
  done
###################################################################################################################################################################
### ENDE der for schleife #########################################################################################################################################
###################################################################################################################################################################
## svwsconfig.json von dem stable Modus in den dev Modus setzen ###
docker exec $STACK-svws-server-1 /bin/sh -c 'sed -i 's/stable/alpha/g' svwsconfig.json'
docker exec $STACK-svws-server-1 /bin/sh -c 'sed -i 's/svwsdb/Grundschule/g' svwsconfig.json'
###################################################################################################################################################################
echo
echo -e -n "${WEISS}### Stoppen der docker-container ${GELB}$STACK-mariadb-1 ${WEISS}und ${GELB}$STACK-svws-server-1 ${WEISS}### ${NC}" 
echo
    docker stop $STACK-mariadb-1
    docker stop $STACK-svws-server-1 
echo
echo -e -n " ${HELLGRUEN}OK ${NC}"
echo
#
done < schulungen.txt
#
#
echo
echo -e -n "${TUERKIS}Installation des DOCKER Portainer ${NC}"
echo
sleep 1
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9443:9443 --name=portainer -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data --restart=always portainer/portainer-ce
echo
echo -e -n "${WEISS}### ${GELB}Alle DatenbankSchemata eingeplegt. ${HELLROT}Bitte die Container Starten!!  ${WEISS}### ${NC}" 
echo
echo -e -n "${WEISS}### Unter ${GELB}https://$SERVERNAME ${WEISS}ist die Locale docker Webseite zu erreichen. ### ${NC}" 
echo
echo -e -n "${WEISS}### ${GELB}Es Erfolgt ein NEU START !?! ${WEISS}### ${NC}" 
echo
sleep 5
reboot
#