#!/bin/bash # Prüfe Abhängigkeiten, bevor irgendetwas anderes passiert ./check_dependencies.sh || exit 1 # Lade globale Konfiguration CONFIG_FILE_PATH="$(dirname "$0")/config.sh" if [ -f "$CONFIG_FILE_PATH" ]; then source "$CONFIG_FILE_PATH" else echo "FEHLER: Konfigurationsdatei config.sh nicht unter ${CONFIG_FILE_PATH} gefunden!" exit 1 fi # === Abgeleitete Haupt-Variablen === SCRIPT_BASENAME=$(basename "$0" .sh) LOG_FILE="${LOG_DIR_BASE}/${SCRIPT_BASENAME}.log" LOCK_FILE="${LOCK_FILE_BASE_DIR}/${SCRIPT_BASENAME}.lock" FUNCTIONS_DIR="${SITE_GENERATOR_BASE_PATH}/functions" GENERATORS_DIR="${FUNCTIONS_DIR}/generators" CURRENT_YEAR=$(date '+%Y') CACHE_BUSTER=$(date +%s) WEB_CONTENT_STATIC_PATH="${WEB_CONTENT_BASE_PATH}/${WEB_CONTENT_STATIC_SUBDIR}" # --- Lade alle Funktions-Skripte aus den Unterverzeichnissen --- if [ ! -d "$FUNCTIONS_DIR" ] || [ ! -d "$GENERATORS_DIR" ]; then echo "FEHLER: Funktions-Verzeichnisse (${FUNCTIONS_DIR}, ${GENERATORS_DIR}) nicht gefunden!" exit 1 fi # Lade Hilfsfunktionen und dann die Generatoren for func_file in "$FUNCTIONS_DIR"/*.sh "$GENERATORS_DIR"/*.sh; do if [ -f "$func_file" ]; then source "$func_file" fi done # === Hauptlogik für Webseitengenerierung === exec 200>"$LOCK_FILE" flock -n 200 || { echo "$(date '+%Y-%m-%d %H:%M:%S') - Script ${SCRIPT_BASENAME}.sh ist bereits aktiv (Lock: ${LOCK_FILE}). Beende." | tee -a "$LOG_FILE"; exit 1; } trap 'rm -f "$LOCK_FILE"; log_message "Script ${SCRIPT_BASENAME}.sh beendet."' EXIT log_message "Script ${SCRIPT_BASENAME}.sh gestartet." # --- Führe die ausgelagerten Funktionen in der richtigen Reihenfolge aus --- # 1. Initialisierung: Verzeichnisse und Assets vorbereiten initialize_site_structure_and_assets # 2. Globale CSS-Datei generieren generate_css # 3. Statische Seiten generieren generate_static_pages # 4. Welt-spezifische Seiten generieren generate_all_world_pages log_message "Webseiten-Generierung abgeschlossen." exit 0