luanti-web/generate_site.sh
2025-06-21 15:58:52 +02:00

60 lines
1.9 KiB
Bash
Executable file

#!/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