first changes for v0.2
This commit is contained in:
parent
50208b0ee8
commit
0140e114cd
8 changed files with 692 additions and 203 deletions
|
|
@ -33,10 +33,8 @@ MM_CFG_DRAWPLAYERS="$DEFAULT_MM_CFG_DRAWPLAYERS"; MM_CFG_DRAWSCALE="$DEFAULT_MM_
|
|||
TILES_SUBDIR_NAME="$DEFAULT_TILES_SUBDIR_NAME"; GDAL2TILES_ZOOM_LEVELS="$DEFAULT_GDAL2TILES_ZOOM_LEVELS"
|
||||
WEB_MAP_PNG_FILENAME="$DEFAULT_WEB_MAP_PNG_FILENAME"; RESIZED_MAX_DIMENSION="$DEFAULT_RESIZED_MAX_DIMENSION"
|
||||
ARCHIVE_SUBDIR_NAME="$DEFAULT_ARCHIVE_SUBDIR_NAME"
|
||||
# RAW_MAP_FILENAME ist global aus config.sh
|
||||
# RAW_MAP_BASE_SUBDIR ist global aus config.sh (wird für den Output im BASE_SCRIPT_DIR verwendet)
|
||||
|
||||
WORLD_WEB_CONFIG_FILE="${CURRENT_MINETEST_WORLD_DATA_PATH}web.conf" # web.conf im Minetest Weltordner
|
||||
WORLD_WEB_CONFIG_FILE="${CURRENT_MINETEST_WORLD_DATA_PATH}web.conf"
|
||||
if [ -f "$WORLD_WEB_CONFIG_FILE" ]; then
|
||||
echo "$(date '+%Y-%m-%d %H:%M:%S') - [${WORLD_KEY}] - Lade Web-Konfiguration aus ${WORLD_WEB_CONFIG_FILE}"
|
||||
source "$WORLD_WEB_CONFIG_FILE"
|
||||
|
|
@ -50,16 +48,13 @@ MINETESTMAPPER_PATH="${BASE_SCRIPT_DIR}/${MINETESTMAPPER_EXEC_NAME}"
|
|||
LOG_FILE="${LOG_DIR_BASE}/${SCRIPT_BASENAME}_${WORLD_KEY}.log"
|
||||
LOCK_FILE="${LOCK_FILE_BASE_DIR}/${SCRIPT_BASENAME}_${WORLD_KEY}.lock"
|
||||
|
||||
# Wichtige Prüfungen für Pfadkomponenten für den Output von minetestmapper
|
||||
if [ -z "$RAW_MAP_BASE_SUBDIR" ]; then echo "FEHLER: RAW_MAP_BASE_SUBDIR ist in config.sh nicht gesetzt oder leer!"; exit 1; fi
|
||||
if [ -z "$RAW_MAP_FILENAME" ]; then echo "FEHLER: RAW_MAP_FILENAME ist in config.sh nicht gesetzt oder leer!"; exit 1; fi
|
||||
|
||||
# Ausgabepfade für rohe Kartendaten (im BASE_SCRIPT_DIR)
|
||||
RAW_MAP_OUTPUT_DIR_ABSOLUTE="${BASE_SCRIPT_DIR}/${RAW_MAP_BASE_SUBDIR}/${WORLD_KEY}"
|
||||
RAW_MAP_ABSOLUTE_PATH="${RAW_MAP_OUTPUT_DIR_ABSOLUTE}/${RAW_MAP_FILENAME}"
|
||||
UNKNOWN_NODES_FILE_ABSOLUTE_PATH="${RAW_MAP_OUTPUT_DIR_ABSOLUTE}/unknown_nodes.txt"
|
||||
|
||||
# Web-Pfade (nutzen den WORLD_KEY für die Verzeichnisstruktur)
|
||||
WEB_CURRENT_WORLD_DIR="${WEB_ROOT_PATH}/${WEB_MAPS_BASE_SUBDIR}/${WORLD_KEY}"
|
||||
TILES_FULL_OUTPUT_PATH="${WEB_CURRENT_WORLD_DIR}/${TILES_SUBDIR_NAME}"
|
||||
WEB_MAP_PNG_FULL_PATH="${WEB_CURRENT_WORLD_DIR}/${WEB_MAP_PNG_FILENAME}"
|
||||
|
|
@ -101,14 +96,8 @@ flock -n 200 || { echo "$(date '+%Y-%m-%d %H:%M:%S') - [${WORLD_KEY}] Script ${S
|
|||
trap 'rm -f "$LOCK_FILE"; log_message "Skript ${SCRIPT_BASENAME}.sh beendet."' EXIT
|
||||
mkdir -p "$LOG_DIR_BASE"; log_message "Skript ${SCRIPT_BASENAME}.sh gestartet für Welt-Schlüssel: ${WORLD_KEY}"
|
||||
|
||||
log_message "DEBUG: MINETESTMAPPER_WORLD_DATA_BASE_PATH = '${MINETESTMAPPER_WORLD_DATA_BASE_PATH}'" # Neuer Debug-Log
|
||||
log_message "DEBUG: CURRENT_MINETEST_WORLD_DATA_PATH (für -i Option) = '${CURRENT_MINETEST_WORLD_DATA_PATH}'" # Neuer Debug-Log
|
||||
log_message "DEBUG: RAW_MAP_ABSOLUTE_PATH (für -o Option) = '${RAW_MAP_ABSOLUTE_PATH}'"
|
||||
|
||||
mkdir -p "${RAW_MAP_OUTPUT_DIR_ABSOLUTE}"
|
||||
if [ ! -d "${RAW_MAP_OUTPUT_DIR_ABSOLUTE}" ]; then log_message "FEHLER: Rohkarten-Ausgabeverz. (${RAW_MAP_OUTPUT_DIR_ABSOLUTE}) nicht erstellt."; exit 1; fi
|
||||
log_message "DEBUG: Rohkarten-Ausgabeverzeichnis (${RAW_MAP_OUTPUT_DIR_ABSOLUTE}) existiert."
|
||||
ls -ld "${RAW_MAP_OUTPUT_DIR_ABSOLUTE}" >> "$LOG_FILE" 2>/dev/null
|
||||
|
||||
# 1. Generiere die map.png
|
||||
if [ ! -x "$MINETESTMAPPER_PATH" ]; then log_message "FEHLER: minetestmapper (${MINETESTMAPPER_PATH}) nicht ausführbar."; exit 1; fi
|
||||
|
|
@ -119,15 +108,30 @@ if [ "${MM_CFG_DRAWSCALE}" = "true" ]; then MM_ALL_OPTIONS_STR="${MM_ALL_OPTIONS
|
|||
MM_ALL_OPTIONS_STR="${MM_ALL_OPTIONS_STR} --origincolor '${MM_OPT_ORIGINCOLOR}'"; MM_ALL_OPTIONS_STR="${MM_ALL_OPTIONS_STR} --playercolor '${MM_OPT_PLAYERCOLOR}'"
|
||||
MM_ALL_OPTIONS_STR="${MM_ALL_OPTIONS_STR} --scalecolor '${MM_OPT_SCALECOLOR}'"; MM_ALL_OPTIONS_STR="${MM_ALL_OPTIONS_STR} --bgcolor '${MM_OPT_BGCOLOR}'"
|
||||
MM_ALL_OPTIONS_STR="${MM_ALL_OPTIONS_STR} --min-y ${MM_OPT_MIN_Y}"
|
||||
# Verwendet CURRENT_MINETEST_WORLD_DATA_PATH für -i (korrekt mit / am Ende aus config.sh und WORLD_KEY)
|
||||
|
||||
MAP_GENERATION_COMMAND_TO_EVAL="'${MINETESTMAPPER_PATH}' -i '${CURRENT_MINETEST_WORLD_DATA_PATH}' -o '${RAW_MAP_ABSOLUTE_PATH}' ${MM_ALL_OPTIONS_STR}"
|
||||
log_message "DEBUG: Eval-Befehl: ${MAP_GENERATION_COMMAND_TO_EVAL}"
|
||||
log_message "Starte minetestmapper (Optionen: ${MM_ALL_OPTIONS_STR}). Ausgaben folgen:"
|
||||
MAPPER_RUN_OUTPUT_CAPTURE_FILE=$(mktemp); MAPPER_EXIT_STATUS=0
|
||||
(set -o pipefail; eval "${MAP_GENERATION_COMMAND_TO_EVAL}" 2>&1 | tee -a "$LOG_FILE" > "$MAPPER_RUN_OUTPUT_CAPTURE_FILE"); MAPPER_EXIT_STATUS=$?
|
||||
if [ ${MAPPER_EXIT_STATUS} -ne 0 ]; then log_message "FEHLER: minetestmapper (Status: ${MAPPER_EXIT_STATUS})."; tail -n 15 "$MAPPER_RUN_OUTPUT_CAPTURE_FILE" | while IFS= read -r line; do log_message " ${line}"; done; rm -f "$MAPPER_RUN_OUTPUT_CAPTURE_FILE"; exit 1; fi
|
||||
if [ ! -f "$RAW_MAP_ABSOLUTE_PATH" ]; then log_message "FEHLER: ${RAW_MAP_ABSOLUTE_PATH} nicht gefunden (minetestmapper Status ${MAPPER_EXIT_STATUS})."; rm -f "$MAPPER_RUN_OUTPUT_CAPTURE_FILE"; exit 1; fi
|
||||
log_message "${RAW_MAP_FILENAME} erfolgreich generiert nach ${RAW_MAP_ABSOLUTE_PATH}."
|
||||
|
||||
# === Karten-Dimensionen auslesen und in map_info.txt speichern ===
|
||||
log_message "Ermittle Dimensionen von ${RAW_MAP_ABSOLUTE_PATH}..."
|
||||
if ! command -v identify &> /dev/null; then
|
||||
log_message "WARNUNG: 'identify' (Teil von ImageMagick) nicht gefunden. map_info.txt kann nicht erstellt werden."
|
||||
else
|
||||
dimensions=$(identify -format "%wx%h" "$RAW_MAP_ABSOLUTE_PATH" 2>/dev/null)
|
||||
if [ -n "$dimensions" ]; then
|
||||
map_info_file="${RAW_MAP_OUTPUT_DIR_ABSOLUTE}/map_info.txt"
|
||||
echo "$dimensions" > "$map_info_file"
|
||||
log_message "Dimensionen (${dimensions}) erfolgreich in ${map_info_file} gespeichert."
|
||||
else
|
||||
log_message "FEHLER: Konnte Dimensionen von ${RAW_MAP_ABSOLUTE_PATH} nicht ermitteln."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Unknown Nodes Verarbeitung
|
||||
if [ -f "$MAPPER_RUN_OUTPUT_CAPTURE_FILE" ]; then
|
||||
TEMP_NEW_UNKNOWN_NODES_FILE="${UNKNOWN_NODES_FILE_ABSOLUTE_PATH}.new_found"
|
||||
|
|
@ -137,8 +141,7 @@ if [ -f "$MAPPER_RUN_OUTPUT_CAPTURE_FILE" ]; then
|
|||
else log_message "WARNUNG: minetestmapper-Ausgabe nicht verarbeitbar."; fi
|
||||
rm -f "$MAPPER_RUN_OUTPUT_CAPTURE_FILE"
|
||||
|
||||
# 2. Web-Vorschaukarte (verkleinert) erstellen (wie zuvor)
|
||||
# ...
|
||||
# 2. Web-Vorschaukarte (verkleinert) erstellen
|
||||
log_message "Erzeuge Web-Version von ${RAW_MAP_FILENAME} (max ${RESIZED_MAX_DIMENSION}px) nach ${WEB_MAP_PNG_FULL_PATH}..."
|
||||
mkdir -p "$(dirname "$WEB_MAP_PNG_FULL_PATH")"
|
||||
if [ ! -f "$RAW_MAP_ABSOLUTE_PATH" ]; then log_message "FEHLER: Quelldatei ${RAW_MAP_ABSOLUTE_PATH} für Web-Vorschau nicht gefunden!"; else
|
||||
|
|
@ -151,8 +154,7 @@ if [ ! -f "$RAW_MAP_ABSOLUTE_PATH" ]; then log_message "FEHLER: Quelldatei ${RAW
|
|||
fi
|
||||
fi
|
||||
|
||||
# 3. Tiles generieren (wie zuvor)
|
||||
# ...
|
||||
# 3. Tiles generieren
|
||||
log_message "Generiere Kacheln (Zoom: ${GDAL2TILES_ZOOM_LEVELS}) nach ${TILES_FULL_OUTPUT_PATH}..."
|
||||
if [ ! -f "$RAW_MAP_ABSOLUTE_PATH" ]; then log_message "FEHLER: Quelldatei ${RAW_MAP_ABSOLUTE_PATH} für Tiling nicht gefunden!"; else
|
||||
TEMP_TILES_DIR="${TILES_FULL_OUTPUT_PATH}_temp_$(date +%s)"; rm -rf "$TEMP_TILES_DIR"; mkdir -p "$(dirname "$TILES_FULL_OUTPUT_PATH")"
|
||||
|
|
@ -169,8 +171,7 @@ fi
|
|||
# === Archivbereinigung ===
|
||||
prune_archives
|
||||
|
||||
# 4. Tägliches Archivbild (wie zuvor)
|
||||
# ...
|
||||
# 4. Tägliches Archivbild
|
||||
ARCHIVE_YEAR=$(date '+%Y'); ARCHIVE_MONTH=$(date '+%m'); ARCHIVE_DAY=$(date '+%d')
|
||||
ARCHIVE_DAILY_TARGET_DIR="${ARCHIVE_BASE_WEB_PATH}/${ARCHIVE_YEAR}/${ARCHIVE_MONTH}"
|
||||
ARCHIVE_DAILY_FILE_PATH="${ARCHIVE_DAILY_TARGET_DIR}/${ARCHIVE_DAY}.png"
|
||||
|
|
@ -192,8 +193,7 @@ if [ ! -f "$ARCHIVE_DAILY_FILE_PATH" ]; then
|
|||
fi; fi; fi
|
||||
else log_message "Archivbild ${ARCHIVE_DAILY_FILE_PATH} existiert bereits."; fi
|
||||
|
||||
# 5. Status- und Info-Dateien im Webverzeichnis (wie zuvor)
|
||||
# ...
|
||||
# 5. Status- und Info-Dateien im Webverzeichnis
|
||||
log_message "Erstelle Status- und Info-Dateien im Webverzeichnis ${WEB_CURRENT_WORLD_DIR}..."
|
||||
mkdir -p "$WEB_CURRENT_WORLD_DIR"
|
||||
echo "$(date '+%Y-%m-%d %H:%M:%S %Z')" > "${WEB_CURRENT_WORLD_DIR}/last_update.txt" && log_message "last_update.txt erstellt." || log_message "FEHLER: last_update.txt nicht erstellt."
|
||||
|
|
@ -201,4 +201,15 @@ if [ -f "$UNKNOWN_NODES_FILE_ABSOLUTE_PATH" ]; then
|
|||
if cp "$UNKNOWN_NODES_FILE_ABSOLUTE_PATH" "${WEB_CURRENT_WORLD_DIR}/unknown_nodes.txt"; then log_message "unknown_nodes.txt nach Web kopiert."; else log_message "FEHLER: unknown_nodes.txt nicht nach Web kopiert."; fi
|
||||
else log_message "WARNUNG: ${UNKNOWN_NODES_FILE_ABSOLUTE_PATH} für Web-Kopie nicht gefunden."; fi
|
||||
|
||||
# NEU: Kopiere map_info.txt in das Web-Verzeichnis
|
||||
if [ -f "${RAW_MAP_OUTPUT_DIR_ABSOLUTE}/map_info.txt" ]; then
|
||||
if cp "${RAW_MAP_OUTPUT_DIR_ABSOLUTE}/map_info.txt" "${WEB_CURRENT_WORLD_DIR}/map_info.txt"; then
|
||||
log_message "map_info.txt nach Web kopiert."
|
||||
else
|
||||
log_message "FEHLER: map_info.txt konnte nicht nach Web kopiert werden."
|
||||
fi
|
||||
else
|
||||
log_message "WARNUNG: Quelldatei map_info.txt für Web-Kopie nicht gefunden."
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue