#!/usr/bin/env bash
# Instancia independiente, socket privado y sin puerto TCP.
set -euo pipefail
state="${HOMECORE_DEV_STATE:-$HOME/.local/share/homecore-dev}"
if [ "$state" = "$HOME/.local/share/homecore-dev" ] && systemctl is-active --quiet homecore-database.service; then
  if [ "${1:-start}" = stop ]; then
    echo 'MariaDB mantiene el piloto. Usa systemctl para una parada planificada de HomeCore.' >&2
    exit 1
  fi
  echo 'MariaDB del piloto ya está gestionado por systemd.'
  exit 0
fi
mkdir -p "$state"
chmod 700 "$state"
case "${1:-start}" in
start)
  if [ ! -d "$state/data/mysql" ]; then
    /opt/bitnami/mariadb/bin/mariadb-install-db --no-defaults --datadir="$state/data" --auth-root-authentication-method=normal > "$state/install.log" 2>&1
  fi
  if ! /opt/bitnami/mariadb/bin/mariadb-admin --no-defaults --socket="$state/mysql.sock" -uroot ping >/dev/null 2>&1; then
    nohup /opt/bitnami/mariadb/sbin/mariadbd --no-defaults --datadir="$state/data" --socket="$state/mysql.sock" --pid-file="$state/mysql.pid" --skip-networking --log-error="$state/mysql.log" > "$state/launcher.log" 2>&1 < /dev/null &
    for attempt in {1..100}; do
      if /opt/bitnami/mariadb/bin/mariadb-admin --no-defaults --socket="$state/mysql.sock" -uroot ping >/dev/null 2>&1; then break; fi
      sleep 0.1
    done
  fi
  /opt/bitnami/mariadb/bin/mariadb --no-defaults --socket="$state/mysql.sock" -uroot -e 'CREATE DATABASE IF NOT EXISTS homecore_dev CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci'
  echo "MariaDB de desarrollo disponible mediante socket privado."
  ;;
stop)
  /opt/bitnami/mariadb/bin/mariadb-admin --no-defaults --socket="$state/mysql.sock" -uroot shutdown
  ;;
*) echo 'Uso: database-dev.sh start|stop' >&2; exit 1;;
esac
