#!/usr/bin/with-contenv bashio
# ==============================================================================
# Start MariaDB client to lock tables (for snapshots)
# ==============================================================================

bashio::log.info "Lock tables using mariadb client..."

exec 4> >(mariadb)
MARIADB_PID=$!

echo "FLUSH TABLES WITH READ LOCK;" >&4

# Notify s6 about successful service start
echo "" >&3

bashio::log.info "MariaDB tables locked."

# Register stop
function stop_mariadb_client() {
    echo "UNLOCK TABLES;" >&4
    bashio::log.info "MariaDB tables unlocked."
    exec 4>&-
    # Successful exit, avoid wait exit status to propagate
    exit 0
}
trap "stop_mariadb_client" SIGTERM SIGHUP

wait "${MARIADB_PID}"
