#!/usr/bin/env bash
# Pearl Miner by th0rn — запуск к пулу pearl-proxy (pearl+tcp).
# Ядро: тот же Pearl CUDA path, что у racer 0.3.1 (без devfee на LAN/IP пуле).
set -euo pipefail

DIR="$(cd "$(dirname "$0")" && pwd)"
BIN="${PEARL_MINER_BIN:-$DIR/pearl-miner-bin}"

if [[ ! -x "$BIN" ]]; then
  echo "pearl-miner: нет бинарника $BIN — запустите: $DIR/build-from-racer.sh" >&2
  exit 1
fi

# Агент в registerMiner: {COMPUTERNAME}th0rn] [pearl] (см. patch_branding.py)
export COMPUTERNAME="${PEARL_MINER_NAME:-pearl-miner/1.0-by-}"

POOL_URL="${PEARL_POOL_URL:-}"
POOL_USER="${PEARL_POOL_USER:-}"
API_PORT="${PEARL_MINER_API_PORT:-}"

show_banner() {
  cat <<'EOF'
╔══════════════════════════════════════════════════╗
║           Pearl Miner  ·  by th0rn             ║
║     Plain-PoW · pearl+tcp · Pearl Pool PPLNS    ║
╚══════════════════════════════════════════════════╝
EOF
}

usage() {
  cat <<EOF
Pearl Miner by th0rn

Использование:
  $0 -o pearl+tcp://HOST:PORT -u WALLET.rig1 [доп. флаги racer]

Переменные окружения:
  PEARL_POOL_URL     — URL пула (pearl+tcp://...)
  PEARL_POOL_USER    — кошелёк.воркер
  PEARL_MINER_API_PORT — HTTP метрики (как у racer --api-port)
  PEARL_MINER_BIN    — путь к pearl-miner-bin

Пример (mainnet Pearl Pool):
  $0 -o pearl+tcp://192.168.1.223:9100 -u prl1p....rig1 --api-port 4078

DevFee: на IP/LAN пуле racer отключает devfee автоматически.
Метрики: plainproof_hps + pearl_eq_hashrate → pearl-proxy / UI.
EOF
}

if [[ "${1:-}" == "-h" || "${1:-}" == "--help" ]]; then
  usage
  exit 0
fi

show_banner

ARGS=("$@")
if [[ ${#ARGS[@]} -eq 0 ]]; then
  if [[ -z "$POOL_URL" || -z "$POOL_USER" ]]; then
    usage
    exit 1
  fi
  ARGS=(-a pearl -o "$POOL_URL" -u "$POOL_USER")
  [[ -n "$API_PORT" ]] && ARGS+=(--api-port "$API_PORT")
else
  HAS_ALGO=0 HAS_URL=0
  for a in "${ARGS[@]}"; do
    [[ "$a" == "-a" || "$a" == pearl || "$a" == --algo ]] && HAS_ALGO=1
    [[ "$a" == "-o" || "$a" == pearl+tcp:* ]] && HAS_URL=1
  done
  [[ $HAS_ALGO -eq 0 ]] && ARGS=(-a pearl "${ARGS[@]}")
  if [[ $HAS_URL -eq 0 && -n "$POOL_URL" ]]; then
    ARGS+=(-o "$POOL_URL")
  fi
  if [[ -z "$(printf '%s\n' "${ARGS[@]}" | grep -E '^-u$|--user')" && -n "$POOL_USER" ]]; then
    ARGS+=(-u "$POOL_USER")
  fi
  if [[ -n "$API_PORT" ]] && ! printf '%s\n' "${ARGS[@]}" | grep -qE '^--api-port$'; then
    ARGS+=(--api-port "$API_PORT")
  fi
fi

exec "$BIN" "${ARGS[@]}"
