#!/bin/bash
#
# BRUNIE-Datenbank hochfahren
#
# Angepasst fr:
#   - CentOS 10
#   - GT.M 7.1
#   - systemd
#

###############################################################################
# Grundeinstellungen
###############################################################################

BRUNIE_DIR="/brunie"
GTM_DIR="/usr/gtm"
BRUNIE_USER="brunie"
BRUNIE_GROUP="brunie"

LOG_DIR="${BRUNIE_DIR}/log"
STARTUP_LOG="${LOG_DIR}/startup.log"

###############################################################################
# Benutzer prfen
###############################################################################

if [ "$(id -un)" != "${BRUNIE_USER}" ]; then
    echo
    echo "   Nur unter Benutzer '${BRUNIE_USER}' zugelassen!"
    echo
    exit 1
fi

###############################################################################
# Verzeichnisse prfen
###############################################################################

if [ ! -d "${BRUNIE_DIR}" ]; then
    echo
    echo "FEHLER: BRUNIE-Verzeichnis wurde nicht gefunden:"
    echo "  ${BRUNIE_DIR}"
    echo
    exit 1
fi

if [ ! -d "${LOG_DIR}" ]; then
    mkdir -p "${LOG_DIR}" || {
        echo
        echo "FEHLER: Log-Verzeichnis konnte nicht angelegt werden:"
        echo "  ${LOG_DIR}"
        echo
        exit 1
    }
fi

###############################################################################
# GT.M prfen
###############################################################################

if [ ! -x "${GTM_DIR}/mumps" ]; then
    echo
    echo "FEHLER: GT.M MUMPS wurde nicht gefunden:"
    echo "  ${GTM_DIR}/mumps"
    echo
    exit 1
fi

###############################################################################
# Start protokollieren
###############################################################################

echo -n "Gestartet: " >> "${STARTUP_LOG}"
date >> "${STARTUP_LOG}"

###############################################################################
# GT.M Umgebung
###############################################################################

export gtm_ztrap_form="adaptive"
export gtm_ztrap_new="TRUE"
export gtm_dist="${GTM_DIR}"
export gtmgbldir="SYS"
export gtmroutines="SYS ${GTM_DIR}"
export PATH="${PATH}:${GTM_DIR}"

###############################################################################
# BRUNIE-Verzeichnis
###############################################################################

cd "${BRUNIE_DIR}" || {
    echo
    echo "FEHLER: Kann nicht nach ${BRUNIE_DIR} wechseln."
    echo
    exit 1
}

###############################################################################
# Datenbank stoppen
###############################################################################

if [ -x "${BRUNIE_DIR}/system/stopdb" ]; then

    "${BRUNIE_DIR}/system/stopdb" || {
        echo
        echo "FEHLER: stopdb konnte nicht erfolgreich ausgefhrt werden."
        echo
        exit 1
    }

else

    echo
    echo "FEHLER: stopdb wurde nicht gefunden oder ist nicht ausfhrbar:"
    echo "  ${BRUNIE_DIR}/system/stopdb"
    echo
    exit 1

fi

###############################################################################
# Temporre Datenbanken bereinigen
###############################################################################

if [ -x "${BRUNIE_DIR}/system/cleanup" ]; then

    "${BRUNIE_DIR}/system/cleanup" || {
        echo
        echo "FEHLER: cleanup konnte nicht erfolgreich ausgefhrt werden."
        echo
        exit 1
    }

else

    echo
    echo "FEHLER: cleanup wurde nicht gefunden oder ist nicht ausfhrbar:"
    echo "  ${BRUNIE_DIR}/system/cleanup"
    echo
    exit 1

fi

###############################################################################
# BRUNIE-Datenbank starten
###############################################################################

cd "${BRUNIE_DIR}" || {
    echo
    echo "FEHLER: Kann nicht nach ${BRUNIE_DIR} wechseln."
    echo
    exit 1
}

"${GTM_DIR}/mumps" -run ^%QBOOT

RET=$?

###############################################################################
# Ergebnis
###############################################################################

if [ ${RET} -ne 0 ]; then

    echo
    echo "FEHLER: %QBOOT konnte nicht gestartet werden."
    echo
    exit ${RET}

fi

echo

exit 0