#!/usr/bin/env bash
# Cron job: auto-pull from GitHub and deploy (every 5 minutes)
# Crontab example:
#   */5 * * * * /bin/bash /home/USER/test.duiclick.com/scripts/deploy/cpanel-auto-pull.sh >> /home/USER/logs/saas-deploy.log 2>&1
set -euo pipefail

APP_DIR="${APP_DIR:-$(cd "$(dirname "$0")/../.." && pwd)}"
BRANCH="${BRANCH:-main}"
LOG_PREFIX="[$(date '+%Y-%m-%d %H:%M:%S')]"

cd "${APP_DIR}"

if [[ ! -d .git ]]; then
  echo "${LOG_PREFIX} ERROR: Not a git repository: ${APP_DIR}"
  exit 1
fi

git fetch origin "${BRANCH}" --quiet
LOCAL="$(git rev-parse HEAD)"
REMOTE="$(git rev-parse "origin/${BRANCH}")"

if [[ "${LOCAL}" == "${REMOTE}" ]]; then
  echo "${LOG_PREFIX} Already up to date (${LOCAL:0:7})"
  exit 0
fi

echo "${LOG_PREFIX} Updating ${LOCAL:0:7} -> ${REMOTE:0:7}"
git reset --hard "origin/${BRANCH}"
/bin/bash scripts/deploy/cpanel-post-deploy.sh
echo "${LOG_PREFIX} Deploy complete"
