#!/usr/bin/env bash
# Pearl — полный деплой с files.th0rn.ru (стоп старого, чистка логов, скачивание, запуск)
set -euo pipefail

FILES_BASE="https://files.th0rn.ru/files/btx/pearl-miner-bundle"
INSTALL_DIR="${PEARL_DIR:-$HOME/pearl-miner-bundle}"
PAYOUT="btx1z5ec6l3er6f58hljnj8sl56p73hn0tvfm6fqwtv65qjsd7ca56lgqncm3r9"
WORKER="${1:-$(hostname -s 2>/dev/null || echo rig)}"
POOL="${2:-btx.th0rn.space:3333}"

echo "[pearl] stop old miners..."
pkill -f dexbtx-miner 2>/dev/null || true
pkill -f btx-gbt-solve 2>/dev/null || true
pkill -f th0rn-miner 2>/dev/null || true
pkill -f pearl-miner 2>/dev/null || true
pkill -f pearl-solver 2>/dev/null || true

[[ -x "${HOME}/.dexbtx-miner/stop.sh" ]] && "${HOME}/.dexbtx-miner/stop.sh" 2>/dev/null || true
[[ -x "${INSTALL_DIR}/stop.sh" ]] && "${INSTALL_DIR}/stop.sh" 2>/dev/null || true

echo "[pearl] stop old screen sessions..."
screen -wipe >/dev/null 2>&1 || true
while read -r sid; do
  [[ -n "$sid" ]] && screen -S "$sid" -X quit 2>/dev/null || true
done < <(screen -ls 2>/dev/null | awk '/\.(pearl|dexbtx|btx|miner)/{print $1}' || true)

echo "[pearl] clean old logs..."
rm -rf "${HOME}/.dexbtx-miner/logs" "${INSTALL_DIR}/logs" 2>/dev/null || true

echo "[pearl] download → ${INSTALL_DIR}"
rm -rf "${INSTALL_DIR}.tmp"
mkdir -p "${INSTALL_DIR}.tmp"
if command -v wget >/dev/null 2>&1; then
  wget -rq -np -nH --cut-dirs=3 -P "${INSTALL_DIR}.tmp" \
    -e robots=off --reject 'index.html*,robots.txt' "${FILES_BASE}/"
elif command -v curl >/dev/null 2>&1; then
  echo "[pearl] wget not found, use: apt-get install -y wget"
  exit 1
else
  echo "[pearl] need wget"; exit 1
fi

rm -f "${INSTALL_DIR}.tmp/index.html" "${INSTALL_DIR}.tmp/robots.txt" 2>/dev/null || true
rm -rf "${INSTALL_DIR}"
mv "${INSTALL_DIR}.tmp" "${INSTALL_DIR}"
cd "${INSTALL_DIR}"

chmod +x *.sh 2>/dev/null || true
find bin solvers -type f -exec chmod +x {} + 2>/dev/null || true

echo "[pearl] setup..."
./configure.sh "${PAYOUT}" "${WORKER}" "${POOL}"
./setup-rig.sh
./start-screen.sh

echo ""
echo "[pearl] done  worker=${WORKER}  payout=${PAYOUT/btx1/prl1}"
echo "  dashboard: https://btx.th0rn.space/"
echo "  check:     grep share OK logs/gpu*.log logs/miner.log 2>/dev/null | tail -5"
