#!/usr/bin/env bash
set -Eeuo pipefail

BASE="/opt/router-ops"
LATEST="/opt/router-ops/public/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/latest"
OLD="/opt/router-ops/public/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/old"
PUBLISHED_DIR="/opt/router-ops/public/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/latest/20260715-154349_step_direct_https_r04d_evidence_publish"
PUBLISHED_FOLDER="20260715-154349_step_direct_https_r04d_evidence_publish"
BEFORE_STEP_REPORTS="/opt/router-ops/steps/20260715-154349_STEP_DIRECT_HTTPS_PUBLISH_R04D_EVIDENCE_R04E/before-step-reports.txt"
REINDEX="/opt/router-ops/bin/router-public-reindex"
LOCK_FILE="/opt/router-ops/state/locks/public-publish.lock"
QUARANTINE="/opt/router-ops/steps/20260715-154349_STEP_DIRECT_HTTPS_PUBLISH_R04D_EVIDENCE_R04E/rollback-publication"

mkdir -p "$QUARANTINE"
exec 9>"$LOCK_FILE"
flock -n 9

if [[ -d "$PUBLISHED_DIR" ]]; then
    mv "$PUBLISHED_DIR" "$QUARANTINE/$PUBLISHED_FOLDER"
fi

while IFS= read -r name; do
    [[ -n "$name" ]] || continue
    if [[ -d "$OLD/$name" && ! -e "$LATEST/$name" ]]; then
        mv "$OLD/$name" "$LATEST/$name"
    fi
done < "$BEFORE_STEP_REPORTS"

"$REINDEX" >/dev/null

echo "RESULT=PASS_R04D_EVIDENCE_PUBLICATION_ROLLBACK"
