60 lines
1.9 KiB
Bash
Executable file
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
|