#!/usr/bin/env bash
# onx-directadmin-test-connection — Uzak DirectAdmin sunucusuna SSH bağlantı + DA doğrula.
#
# Input (stdin JSON): {host, port, login_user, auth_method:"password", password}
# Output (stdout JSON): {ok:true, directadmin_version:"1.x"}
#
# exit: 0=ok 1=bad input 2=preflight(sshpass yok) 3=bağlantı/DA yok
# Deployed to: /usr/local/onoxsoft/bin/onx-directadmin-test-connection

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "${SCRIPT_DIR}/_lib/common.sh"
source "${SCRIPT_DIR}/_lib/ssh-remote.sh"

require_root
onx_json_input
onx_ssh_remote_init

if [[ "${MOCK_MODE}" == "1" ]]; then
    onx_json_out ok true directadmin_version "1.0.0-mock"
    exit 0
fi

# DA binary var mı? — bağlandığını + gerçekten DirectAdmin olduğunu doğrular.
EXISTS=$(onx_ssh_run "test -x /usr/local/directadmin/directadmin && echo YES || echo NO" | tr -d '\r\n')
[[ "$EXISTS" == "YES" ]] || onx_die 3 "SSH bağlandı fakat DirectAdmin bulunamadı (/usr/local/directadmin/directadmin). Bu sunucu DirectAdmin mi?"

# Sürüm (best-effort) — DA binary 'v' veya '--version' ile sürüm basar.
VER=$(onx_ssh_run "( /usr/local/directadmin/directadmin v 2>/dev/null || /usr/local/directadmin/directadmin --version 2>/dev/null ) | grep -oiE '[0-9]+\.[0-9]+[0-9.]*' | head -1 || true" | tr -d '\r\n')
[[ -n "$VER" ]] || VER="bilinmiyor"

onx_json_out ok true directadmin_version "$VER"
