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

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

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

###############################################################################
# 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-Namen prfen
###############################################################################

if [[ ! "${UCI}" =~ ^[A-Za-z0-9_-]+$ ]]; then
    echo
    echo "  FEHLER: Ungltiger UCI-Name: ${UCI}"
    echo
    exit 1
fi

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

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

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

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

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

CURDIR="$(pwd)"

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

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

export gtm_dist="${GTM_DIR}"
export gtmgbldir="${UCI}"
export gtmroutines="${GTM_DIR}"
export gtm_ztrap_form="adaptive"
export PATH="${PATH}:${GTM_DIR}"

###############################################################################
# Datenbankdateien prfen
###############################################################################

if [ ! -f "${UCI}.dat" ]; then
    echo
    echo "  FEHLER: Datenbank ${UCI}.dat wurde nicht gefunden."
    echo
    cd "${CURDIR}"
    exit 1
fi

###############################################################################
# Prfen, ob UCI in Benutzung ist
###############################################################################

if ! "${GTM_DIR}/mupip" rundown \
    -f "${UCI}.dat" \
    >/dev/null 2>&1
then
    echo
    echo "  - ${UCI} ist zur Zeit in Benutzung!"
    echo
    cd "${CURDIR}"
    exit 1
fi

if [ -f "${UCI}.tmp" ]; then

    if ! "${GTM_DIR}/mupip" rundown \
        -f "${UCI}.tmp" \
        >/dev/null 2>&1
    then
        echo
        echo "  - ${UCI} ist zur Zeit in Benutzung!"
        echo
        cd "${CURDIR}"
        exit 1
    fi

fi

###############################################################################
# UCI lschen
###############################################################################

echo -n "  - ${UCI} wird gelscht... "

rm -rf -- "${UCI}" \
        "${UCI}.dat" \
        "${UCI}.tmp" \
        "${UCI}.gld"

echo "Okay!"

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

cd "${CURDIR}" || exit 1