#!/usr/bin/env bash
# BTX mining — screen только лог шар (GPU смотри в nvidia-smi).
# Multi-GPU (>1): делегирует start-btx-multigpu-screen.sh
set -euo pipefail
export PATH="${HOME}/.local/bin:${PATH}"
INSTALL_DIR="${HOME}/.dexbtx-miner"
[[ -f "${INSTALL_DIR}/solver-platform.env" ]] && source "${INSTALL_DIR}/solver-platform.env"
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"

GPUS=$(nvidia-smi -L 2>/dev/null | wc -l)
GPUS=$((GPUS + 0))
if [[ "$GPUS" -gt 1 && -x "${SCRIPT_DIR}/start-btx-multigpu-screen.sh" ]]; then
  exec "${SCRIPT_DIR}/start-btx-multigpu-screen.sh"
fi
INSTALL_DIR="${HOME}/.dexbtx-miner"
LOG="${INSTALL_DIR}/miner.log"
CONFIG="${INSTALL_DIR}/config.yaml"
SESSION="btx"
MINER="$(command -v dexbtx-miner)"
PIDFILE="${INSTALL_DIR}/miner.pid"

stop_old() {
  screen -S "$SESSION" -X quit 2>/dev/null || true
  tmux kill-session -t "$SESSION" 2>/dev/null || true
  if [[ -f "$PIDFILE" ]]; then
    kill "$(cat "$PIDFILE")" 2>/dev/null || true
    rm -f "$PIDFILE"
  fi
  pkill -f 'dexbtx-miner --config' 2>/dev/null || true
  pkill -f 'btx-gbt-solve.*--daemon' 2>/dev/null || true
  sleep 2
}

stop_old
mkdir -p "$INSTALL_DIR"
touch "$LOG"

nohup bash -lc "${MINER} --config ${CONFIG} >> ${LOG} 2>&1" &
echo $! > "$PIDFILE"

screen -dmS "$SESSION" bash -lc \
  "tail -F ${LOG} | grep --line-buffered -E 'share OK|share reject|rejected|authorized|ERROR|WARN|metrics|hashrate|BLOCK'"

echo "Miner PID $(cat "$PIDFILE") config=${CONFIG}"
echo "screen -r ${SESSION}"
