#!/usr/bin/env bash
set -euo pipefail

# نصب api_bot_forward در Supervisor
# اجرا: bash supervisor/install.sh

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
WORKER_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
CONF_NAME="api_bot_forward"
TEMPLATE="${SCRIPT_DIR}/${CONF_NAME}.conf"
TARGET="/etc/supervisor/conf.d/${CONF_NAME}.conf"

PHP_BIN="$(command -v php || true)"
if [[ -z "${PHP_BIN}" ]]; then
    echo "ERROR: php not found in PATH"
    exit 1
fi

RUN_USER="$(whoami)"
mkdir -p "${WORKER_DIR}/logs"

if [[ ! -f "${WORKER_DIR}/api_bot_daemon.php" ]]; then
    echo "ERROR: api_bot_daemon.php not found in ${WORKER_DIR}"
    exit 1
fi

echo "Worker dir : ${WORKER_DIR}"
echo "PHP        : ${PHP_BIN}"
echo "Run as user: ${RUN_USER}"

TMP_CONF="$(mktemp)"
sed \
    -e "s|/usr/bin/php|${PHP_BIN}|g" \
    -e "s|/home/yeganeh/public_html/new_hamyar/worker|${WORKER_DIR}|g" \
    -e "s|user=yeganeh|user=${RUN_USER}|g" \
    "${TEMPLATE}" > "${TMP_CONF}"

if [[ -w /etc/supervisor/conf.d ]]; then
    cp "${TMP_CONF}" "${TARGET}"
else
    echo "Need sudo to copy config to ${TARGET}"
    sudo cp "${TMP_CONF}" "${TARGET}"
fi
rm -f "${TMP_CONF}"

reload_supervisor() {
    if command -v supervisorctl >/dev/null 2>&1; then
        sudo supervisorctl reread
        sudo supervisorctl update
        sudo supervisorctl restart "${CONF_NAME}"
        sudo supervisorctl status "${CONF_NAME}"
        return
    fi

    if command -v systemctl >/dev/null 2>&1; then
        sudo systemctl restart supervisor || sudo systemctl restart supervisord
        sleep 2
        sudo supervisorctl status "${CONF_NAME}"
        return
    fi

    echo "WARN: supervisorctl not found. Copy config manually and run:"
    echo "  sudo supervisorctl reread && sudo supervisorctl update && sudo supervisorctl start ${CONF_NAME}"
}

reload_supervisor

echo ""
echo "Done. Logs:"
echo "  ${WORKER_DIR}/logs/supervisor_stdout.log"
echo "  ${WORKER_DIR}/logs/supervisor_stderr.log"
echo "  ${WORKER_DIR}/logs/api_bot_forward.log"
echo ""
echo "Commands:"
echo "  sudo supervisorctl status ${CONF_NAME}"
echo "  sudo supervisorctl restart ${CONF_NAME}"
echo "  sudo supervisorctl stop ${CONF_NAME}"
echo "  tail -f ${WORKER_DIR}/logs/supervisor_stdout.log"
