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

TARGET="${1:-/var/www/app.yachtmemory.net}"
PKG="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
STAMP="$(date +%Y%m%d-%H%M%S)"
BACKUP="${TARGET}/backup/derived-infrastructure-2A-${STAMP}"

echo "YachtMemory Derived Infrastructure - Phase 2A"
echo "Ziel:   ${TARGET}"
echo "Backup: ${BACKUP}"
echo

test -d "${TARGET}" || {
    echo "FEHLER: Zielverzeichnis existiert nicht: ${TARGET}" >&2
    exit 1
}

test -f "${TARGET}/bootstrap.php" || {
    echo "FEHLER: bootstrap.php fehlt." >&2
    exit 1
}

test -f "${TARGET}/src/lib/db.php" || {
    echo "FEHLER: src/lib/db.php fehlt." >&2
    exit 1
}

mkdir -p     "${TARGET}/src/lib"     "${TARGET}/src/repositories"     "${BACKUP}/src/lib"     "${BACKUP}/src/repositories"

if [ -f "${TARGET}/src/lib/DerivedDb.php" ]; then
    cp -a "${TARGET}/src/lib/DerivedDb.php"           "${BACKUP}/src/lib/DerivedDb.php"
fi

if [ -f "${TARGET}/src/repositories/DerivedAnchorageRepository.php" ]; then
    cp -a "${TARGET}/src/repositories/DerivedAnchorageRepository.php"           "${BACKUP}/src/repositories/DerivedAnchorageRepository.php"
fi

echo "1/3 Dateien installieren"

install -m 0644     "${PKG}/src/lib/DerivedDb.php"     "${TARGET}/src/lib/DerivedDb.php"

install -m 0644     "${PKG}/src/repositories/DerivedAnchorageRepository.php"     "${TARGET}/src/repositories/DerivedAnchorageRepository.php"

echo
echo "2/3 PHP-Syntaxprüfung"

php -l "${TARGET}/src/lib/DerivedDb.php"
php -l "${TARGET}/src/repositories/DerivedAnchorageRepository.php"
php -l "${PKG}/scripts/test_derived_anchorages.php"

echo
echo "3/3 Isolierter Derived-Test"

cd "${TARGET}"
php "${PKG}/scripts/test_derived_anchorages.php"

echo
echo "Phase 2A abgeschlossen."
echo "Keine produktive API und kein Schreiber wurde umgestellt."
echo "Backup: ${BACKUP}"
