#!/usr/bin/env bash
# debug-db
# Connect to the database with a MariaDB shell

set -euo pipefail

BACKUP_FILE="paradise_db.sql"
DB_CONTAINER="paradise_db"
MYSQL_DATABASE="paradise_gamedb"
ROOT_PW_FILE="secret/db-root-password.txt"

# make sure we're at the root of the repository
if [ ! -f "Dockerfile" ]; then
    echo >&2 "Error: No Dockerfile found. Are you at the repository root?"
    exit 1
fi

# make sure the credentials we need to access the database exist
if [ ! -f "${ROOT_PW_FILE}" ]; then
    echo >&2 "Error: missing ${ROOT_PW_FILE}. Run tools/docker/init-db first."
    exit 1
fi

# make sure the database is running, so we can back it up!
if ! docker ps --format '{{.Names}}' | grep -qx "${DB_CONTAINER}"; then
    echo >&2 "Error: container '${DB_CONTAINER}' is not running."
    echo >&2 "Start it (or recreate it) before connecting with a shell."
    exit 1
fi

# run a mariadb shell and connect to the database container
MYSQL_ROOT_PASSWORD=$(<"${ROOT_PW_FILE}")
docker exec --interactive --tty "${DB_CONTAINER}" \
    mariadb --password="${MYSQL_ROOT_PASSWORD}" "${MYSQL_DATABASE}"
