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

APP_ROOT="${SERVER_APP_ROOT:?SERVER_APP_ROOT is required}"
VENV_ACTIVATE="${SERVER_VENV_ACTIVATE:?SERVER_VENV_ACTIVATE is required}"
DEPLOY_ARCHIVE="${DEPLOY_ARCHIVE:?DEPLOY_ARCHIVE is required}"
DEPLOY_ENV_FILE="${DEPLOY_ENV_FILE:?DEPLOY_ENV_FILE is required}"

echo "Starting remote deployment into ${APP_ROOT}"

mkdir -p "${APP_ROOT}/uploads" "${APP_ROOT}/logs" "${APP_ROOT}/tmp"

# Keep cPanel-managed and runtime data directories intact, replace everything else.
find "${APP_ROOT}" -mindepth 1 -maxdepth 1 \
  ! -name "public" \
  ! -name "tmp" \
  ! -name ".well-known" \
  ! -name "cgi-bin" \
  ! -name "uploads" \
  ! -name "logs" \
  -exec rm -rf {} +

tar -xzf "${DEPLOY_ARCHIVE}" -C "${APP_ROOT}"
cp "${DEPLOY_ENV_FILE}" "${APP_ROOT}/.env"
chmod 600 "${APP_ROOT}/.env"

echo "APP_ROOT=${APP_ROOT}"
echo "VENV_ACTIVATE=${VENV_ACTIVATE}"

echo "LEN=${#VENV_ACTIVATE}"
printf '%q\n' "$VENV_ACTIVATE"

ls -l "${VENV_ACTIVATE}"

source "${VENV_ACTIVATE}"

export PATH="/home/getrhgjy/tmp/virtualenv/api.getride24.com/3.11/bin:$PATH"

cd "${APP_ROOT}"

echo "CURRENT DIR:"
pwd

echo "FILES:"
ls -la

echo "REQ:"
ls -la requirements.txt || echo "requirements missing"

python -m ensurepip --upgrade
python -m pip install --upgrade pip
python -m pip install -r requirements.txt

# if [[ -f "alembic.ini" ]]; then
#   alembic upgrade head
# fi

echo "Skipping temporarily disabled"

python3.11 -m compileall app passenger_wsgi.py

mkdir -p "${APP_ROOT}/tmp"
touch "${APP_ROOT}/tmp/restart.txt"

rm -f "${DEPLOY_ARCHIVE}" "${DEPLOY_ENV_FILE}"

echo "Deployment completed successfully."
