mirror of
https://github.com/Terranom674/Piwigo_Bratonien_Tools.git
synced 2026-09-19 16:24:33 +00:00
Remove obsolete full-run warmup guard
This commit is contained in:
@@ -1,58 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
set -Eeuo pipefail
|
|
||||||
|
|
||||||
STATE_DIR="${1:-}"
|
|
||||||
shift || true
|
|
||||||
|
|
||||||
[[ -n "$STATE_DIR" ]] || { echo "Connector-State-Verzeichnis fehlt." >&2; exit 2; }
|
|
||||||
[[ $# -gt 0 ]] || { echo "Warmup-Kommando fehlt." >&2; exit 2; }
|
|
||||||
|
|
||||||
mkdir -p -- "$STATE_DIR"
|
|
||||||
LOCK_FILE="$STATE_DIR/webdav-sync.lock"
|
|
||||||
PRIORITY_FILE="$STATE_DIR/webdav-cache-warmup-priority-sync"
|
|
||||||
|
|
||||||
# Der Connector-Sync nutzt denselben Lock exklusiv. Der Warmup hält ihn für
|
|
||||||
# seinen gesamten Lauf nur lesend/geteilt. Dadurch kann der Placeholder- und
|
|
||||||
# Shadow-Tree während Batch-Download, Piwigo-Aufruf und Restore nicht atomar
|
|
||||||
# unter dem Warmup ausgetauscht werden.
|
|
||||||
exec 9>"$LOCK_FILE"
|
|
||||||
flock -s 9
|
|
||||||
|
|
||||||
COMMAND=("$@")
|
|
||||||
|
|
||||||
set +e
|
|
||||||
"${COMMAND[@]}"
|
|
||||||
result=$?
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Ein Connector-Sync kann während eines bereits laufenden Warmups neue Alben
|
|
||||||
# melden. Der Dispatcher legt dafür nur eine Prioritätsmarke an; er startet
|
|
||||||
# keinen zweiten konkurrierenden Worker. Falls der aktive Lauf die Marke noch
|
|
||||||
# nicht selbst übernehmen konnte, wird sie hier nach seinem sauberen Ende
|
|
||||||
# garantiert nachgeholt. Dadurch geht ein Sofort-Warmup nie verloren.
|
|
||||||
if [[ -f "$PRIORITY_FILE" ]]; then
|
|
||||||
rm -f -- "$PRIORITY_FILE"
|
|
||||||
SYNC_COMMAND=()
|
|
||||||
replaced=0
|
|
||||||
for arg in "${COMMAND[@]}"; do
|
|
||||||
if [[ "$arg" == --mode=* ]]; then
|
|
||||||
SYNC_COMMAND+=("--mode=sync")
|
|
||||||
replaced=1
|
|
||||||
else
|
|
||||||
SYNC_COMMAND+=("$arg")
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if [[ "$replaced" -eq 0 ]]; then
|
|
||||||
SYNC_COMMAND+=("--mode=sync")
|
|
||||||
fi
|
|
||||||
|
|
||||||
set +e
|
|
||||||
"${SYNC_COMMAND[@]}"
|
|
||||||
sync_result=$?
|
|
||||||
set -e
|
|
||||||
if [[ "$sync_result" -ne 0 ]]; then
|
|
||||||
result="$sync_result"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit "$result"
|
|
||||||
Reference in New Issue
Block a user