#!/bin/bash
#set -x
# Skriptstarter
#
# Dieses Skript kopiert das auszufuehrende Skript in eine temporaere Datei,
# setzt Rechte und fuehrt diese Kopie dann aus.
# Ziel: Update der Skriptdateien zur Laufzeit ermoeglichen!
#
# Version 2019.06.13-01 (Ew)
START_ARGS_ARRAY=("$@")
START_FILE_NAME="${0##*/}"
START_FILE_NAME="${START_FILE_NAME%.*}"
START_FILE_NAME="/etc/paedML/base/bin/${START_FILE_NAME}"
# Pruefe Benutzer
	if [ $EUID -ne 0 ]; then
		printf "Sie muessen Benutzer 'root' sein, um dieses Skript ausfuehren zu koennen.\n"
		printf "Starten Sie das Skript erneut mit 'sudo'.\n"
		exit 13
	fi
# Suche 1 - Python-Skript
if [ -e "${START_FILE_NAME}.py" ]; then
	START_FILE_NAME="${START_FILE_NAME}.py"
# Suche 2 - Bash-Skript
elif [ -e "${START_FILE_NAME}.sh" ]; then
	START_FILE_NAME="${START_FILE_NAME}.sh"
# Suche 3 - ohne Dateierweiterung
elif [ -e "${START_FILE_NAME}" ]; then
	START_FILE_NAME="${START_FILE_NAME}"
else
	# Nichts gefunden - Abbruch
	printf "Es ist ein Fehler aufgetreten. Das Skript kann nicht ausgefuehrt werden.\n" 
	printf "Fehlernummer: 99990001\n"
	printf "Fehlertext:   Skriptstarter hat keine passende Skriptdatei gefunden.\n"
	printf "Details:      \n"
	printf "  Skriptstarter:  '${0}'\n"
	printf "  Skriptdatei(1): '${START_FILE_NAME}.py'\n"
	printf "  Skriptdatei(2): '${START_FILE_NAME}.sh'\n"
	printf "  Skriptdatei(3): '${START_FILE_NAME}'\n"
	exit 14
fi
# Temporaere Skriptatei anlegen
	TMP_SCRIPT_FILE=$(mktemp)
# Loeschen beim Beenden
	trap 'rm -f "${TMP_SCRIPT_FILE}" 2> /dev/null' 0
# Kopieren und Rechte setzen
	cat "${START_FILE_NAME}" > "${TMP_SCRIPT_FILE}"
	sudo chown root:root "${TMP_SCRIPT_FILE}"
	sudo chmod 755 "${TMP_SCRIPT_FILE}"
# Ausfuehren
	sudo "${TMP_SCRIPT_FILE}" "$@" 
	TMP_SCRIPT_FILE_PID=$!
# Warten
	wait $TMP_SCRIPT_FILE_PID
	TMP_SCRIPT_FILE_ERROR=$?
# Ende
exit $TMP_SCRIPT_FILE_ERROR
