#!/bin/bash
#
# BRUNIE
#
# GT.M Lock Table anzeigen
#
# Angepasst fr:
#   - CentOS 10
#   - GT.M 7.1
#

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

BRUNIE_DIR="/brunie"
GTM_DIR="/usr/gtm"
BRUNIE_USER="brunie"
LOG_DIR="${BRUNIE_DIR}/log"
LOCKTABLE_FILE="${LOG_DIR}/locktable.txt"

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

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

###############################################################################
# Parameter prfen
###############################################################################

if [ $# -ne 1 ]; then
    echo
    echo "  Verwendung:"
    echo "    $0 <UCI>"
    echo
    exit 1
fi

UCI="$1"

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

if [ ! -f "${BRUNIE_DIR}/${UCI}.dat" ]; then
    echo
    echo "  Der UCI ${UCI} existiert nicht!"
    echo
    exit 1
fi

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

if [ ! -x "${GTM_DIR}/lke" ]; then
    echo
    echo "  FEHLER: GT.M LKE wurde nicht gefunden:"
    echo "    ${GTM_DIR}/lke"
    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 Umgebung
###############################################################################

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}"

###############################################################################
# Arbeitsverzeichnis
###############################################################################

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

###############################################################################
# Lock Table anzeigen
###############################################################################

"${GTM_DIR}/lke" show -all \
    -o="${LOCKTABLE_FILE}"

RET=$?

###############################################################################
# Ergebnis prfen
###############################################################################

if [ ${RET} -ne 0 ]; then
    echo
    echo "  FEHLER: GT.M LKE konnte nicht ausgefhrt werden."
    echo
    exit ${RET}
fi

echo
echo "  Lock-Tabelle wurde gespeichert:"
echo "    ${LOCKTABLE_FILE}"
echo