#!/bin/bash
#
# (c) 2026 BRUNIE-Software GmbH
#
# BRUNIE / GT.M Login
#
# Angepasst fr:
#   - CentOS 10
#   - GT.M 7.1
#

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

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

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

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

###############################################################################
# Aktuelles Verzeichnis merken
###############################################################################

CURDIR="$(pwd)"

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

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

###############################################################################
# UCI bernehmen
###############################################################################

UCI="${1:-}"

###############################################################################
# UCI prfen
###############################################################################

if [ -n "${UCI}" ]; then

    if [ ! -f "${BRUNIE_DIR}/${UCI}.dat" ]; then

        echo
        echo "  Der UCI ${UCI} existiert nicht!"
        echo

        UCI=""

    fi

fi

###############################################################################
# Wenn kein UCI angegeben wurde: vorhandene UCIs anzeigen
###############################################################################

if [ -z "${UCI}" ]; then

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

    shopt -s nullglob

    UCI_FILES=( *.dat )

    UCI_LIST=""

    for db in "${UCI_FILES[@]}"
    do

        UCI_NAME="${db%.dat}"

        if [ -n "${UCI_LIST}" ]; then
            UCI_LIST="${UCI_LIST}, "
        fi

        UCI_LIST="${UCI_LIST}${UCI_NAME}"

    done

    shopt -u nullglob

    echo
    echo "  Aufruf: gtm <UCI>"
    echo
    echo "    Vorhandene UCIs = ${UCI_LIST}"
    echo

    cd "${CURDIR}" || exit 1

    exit 0
fi

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

echo
echo "BRUNIE/GT.M for Linux, UCI: ${UCI}"
echo

export gtm_dist="${GTM_DIR}"

export gtmroutines="${UCI} ${GTM_DIR}"

export gtmgbldir="${UCI}"

export gtm_ztrap_form="adaptive"

export gtm_ztrap_new="TRUE"

export PATH="${PATH}:${GTM_DIR}"

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

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

###############################################################################
# GT.M starten
###############################################################################

"${GTM_DIR}/mumps" -di

###############################################################################
# Ursprngliches Verzeichnis wiederherstellen
###############################################################################

cd "${CURDIR}" || exit 1