#!/usr/bin/env bash
# -----------------------------------------------------------------------------
# NodePilot - Script mariadb_status_kurz
# -----------------------------------------------------------------------------
# Aenderungslog
# 2026-03-17 | GPT-5.2-Codex | Datei neu erstellt. Prueft MariaDB-Erreichbarkeit
# lokal und liefert einen kompakten Status als JSON.
# 2026-03-19 | GPT-5.2-Codex | Fachliche MariaDB-CLI-Erkennung korrigiert:
# bevorzugt jetzt `mariadb` vor `mysql`, liefert die verwendete CLI im
# JSON mit und beendet den Lauf bei fehlender nutzbarer CLI oder bei
# Verbindungsfehlern mit Exit-Code != 0, damit der Befehlslauf serverseitig
# nicht mehr faelschlich als erfolgreich gewertet wird.
# -----------------------------------------------------------------------------

set -euo pipefail

nodepilot_mariadb_cli_ermitteln()
{
	if command -v mariadb >/dev/null 2>&1; then
		echo "mariadb"
		return 0
	fi

	if command -v mysql >/dev/null 2>&1; then
		echo "mysql"
		return 0
	fi

	return 1
}

mariadb_cli=""
if ! mariadb_cli="$(nodepilot_mariadb_cli_ermitteln)"; then
	fehlermeldung="Keine nutzbare MariaDB-CLI gefunden (gesucht: mariadb, mysql)."
	jq -nc --arg meldung "${fehlermeldung}" '{verfuegbar:false,meldung:$meldung,cli:""}'
	echo "${fehlermeldung}" >&2
	exit 2
fi

if "${mariadb_cli}" --connect-timeout=3 -Nse 'SELECT 1' >/dev/null 2>&1; then
	jq -nc --arg cli "${mariadb_cli}" '{verfuegbar:true,meldung:"ok",cli:$cli}'
	exit 0
fi

fehlermeldung="MariaDB-Pruefung fehlgeschlagen: Verbindung mit ${mariadb_cli} konnte nicht aufgebaut werden."
jq -nc --arg cli "${mariadb_cli}" --arg meldung "${fehlermeldung}" '{verfuegbar:false,meldung:$meldung,cli:$cli}'
echo "${fehlermeldung}" >&2
exit 3
