#!/bin/sh
### BEGIN INIT INFO
# Provides:          softcam
# Required-Start:    $local_fs
# Required-Stop:     
# Should-Start:      $time $remote_fs cardserver
# Should-Stop:     
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: oscam
# Description:       oscam SoftCAM, card reader and server.
### END INIT INFO

# Debbuging aktivieren
# set -x
#


#####################################
OSD="oscamicqamall"
CAMNAME="oscamicamall"
#####################################
PIDFILE=/var/tmp/${CAMNAME}.pid

CAMCONFIG_PATH="/etc/tuxbox/config/$CAMNAME"
CAM_BINARY="$CAMCONFIG_PATH/binary/$CAMNAME"
DAEMON="$CAMCONFIG_PATH/binary/$CAMNAME"
# Pfad zur oscam.conf
CAMCONFIG_PATH="$CAMCONFIG_PATH"
OSC_PATH="$CAMCONFIG_PATH/oscam.conf"
OSS_PATH="$CAMCONFIG_PATH/oscam.server"
OSU_PATH="$CAMCONFIG_PATH/oscam.user"
#####################################
ANSWER_URL="http://localhost/web/messageanswer"  # Enigma2 Antwort-API von der message in den file geschrieben
LOGDIR="/tmp"
LOGFILE=$LOGDIR/Oscam_All_Script.log
#Generelles Logging.
#exec 3>&1 4>&2
#trap 'exec 2>&4 1>&3' 0 1 2 3
# Log-Ausgaben mit Zeitstempel versehen
exec > >(while IFS= read -r line; do echo "$(date '+%Y-%m-%d %H:%M:%S') - $line"; done >> "$LOGFILE") 2>&1


echo " ###########################################################      Start Variablen "

MESSAGE_PATH=$CAMCONFIG_PATH/message/message_box.sh
echo "$MESSAGE_PATH"

# msg-type ist die art der message , info , warnung usw , TIMEOUT ist die zeit wie lange sie angezeigt wird
msg_type=1
TIMEOUT=1

echo "############################################################"
echo " $PIDFILE "
echo " $CAMCONFIG_PATH"
echo " $CAM_BINARY"
echo " $OSC_PATH"
echo " $OSS_PATH"
echo " $OSU_PATH"
echo "############################################################"

IP_ADDR=$(ip route get 1 | awk '{print $7; exit}')
echo "$IP_ADDR"
echo "############################################################"
###############################################################################
LOG_FILE1="/tmp/camerror_log.txt"
LOG_FILE="/tmp/oscamtest_log.txt"  # Hier wird die Ausgabe der cam-Startversuche gespeichert

############################################## hier aufrufen des camscripts  #############################################################
# ---------------------------------------------------------------------------------------------------------------------------------------- Funktion zum Starten von OSCam
camstart() {
	echo "----------------------------------------------------------------------------------------------------------------------- Cam Start"
	echo "###########################################################              Oscam start  "
	MESSAGE="OSCAM start "
	# Python-Skript aufrufen
	sleep 0
	python "$MESSAGE_PATH" "$MESSAGE" "$msg_type" "$TIMEOUT" >> "$LOGFILE" 2>&1
    
echo "$(date) - Starte OSCam..."
	ulimit -s 1024
	# Setze den Statuscode auf 0
	STATUS=0
    # Hier den Befehl zum Starten von OSCam einfügen
    echo "$DAEMON --config-dir $CAMCONFIG_PATH --daemon --pidfile $PIDFILE --restart 2 " 2>&1
    $DAEMON --config-dir $CAMCONFIG_PATH --daemon --pidfile $PIDFILE --restart 2

	STATUS=$?  # Setze den Statuscode basierend auf dem Ausführungsstatus des Befehls
	echo "Statuscode: $STATUS"
	
	if [ $STATUS -ne 0 ]; then
		sleep 1
		echo "oscam hat nicht gestartet , nochmal starten fehler ausgabe" 
		CAM_UP_OUTPUT="$($DAEMON --config-dir $CAMCONFIG_PATH --daemon --pidfile $PIDFILE --restart 2 2>&1)"
		echo "cam start gestartet error message "
		ERROR_MESSAGE="Fehler beim Starten der Oscam: $CAM_UP_OUTPUT"
		echo "$ERROR_MESSAGE"
		
		echo "cam start error mesage ausgabe ende "
	fi
	sleep 0.5
	echo "Fehlerausgabe: $output"
	echo "Fehlerausgabe2 : $?"

    if [ $? -eq 0 ]; then
        echo "$(date) - OSCam erfolgreich gestartet."
    else
        echo "$(date) - Fehler beim Starten von OSCam!"
		echo "Fehlerausgabe: $output" >> "$LOGFILE"
    fi
}

# ---------------------------------------------------------------------------------------------------------------------------------------- Funktion zum Stoppen von OSCam
camstop() {
	echo "----------------------------------------------------------------------------------------------------------------------- Cam Stop"
    echo "$(date) - Stoppe OSCam..."

	kill `cat $PIDFILE 2> /dev/null` 2> /dev/null
	RETVAL=$?
	
	if [ "$RETVAL" -eq "0" ]; then
		echo " retval ok "
		echo "OK"
	else
		echo " retval fail "
		echo "FAILED"
	fi


    # Hier den Befehl zum Beenden von OSCam einfügen
    echo "killall" 
    killall $CAM_BINARY 2> /dev/null
    
if [ $? -eq 0 ]; then
        echo "$(date) - OSCam erfolgreich gestoppt."
    else
        echo "$(date) - Fehler beim Stoppen von OSCam!"
		MESSAGE="OSCAM not startet  "
		TIMEOUT = 3
		# Python-Skript aufrufen
		python "$MESSAGE_PATH" "$MESSAGE" "$msg_type" "$TIMEOUT" >> "$LOGFILE" 2>&1
		TIMEOUT=1		# wieder zurueck setzen
    fi
}
# ---------------------------------------------------------------------------------------------------------------------------------------- Funktion für Version oder Info
camversion_info() {
	echo "----------------------------------------------------------------------------------------------------------------------- version info"
    echo "$(date) - OSCam Version oder Info anzeigen..."
    # Beispiel für Version-Info von OSCam
    /usr/bin/oscam --version
	echo " version "
    $CAMNAME -V | grep 'Version\|IPv6' | sed 's/Version:[ ]*//' | sed 's/IPv6.*yes/with IPv6/g' | sed 's/IPv6.*no/IPv4-only/g' | sed ':a;N;$!ba;s/\n/ /g'
}

configfiles_vorhanden() {
	echo " ---------------------------------------------------------------------------------------------------------------------- check sind die configfiles vorhanden "
	OSC_not=0
	OSS_not=0
	OSU_not=0

	if [ -d "$CAMCONFIG_PATH" ]; then
		echo "Config Directory exist"

		if [ -f "$OSC_PATH" ]; then
			echo "Oscam.config file exist"
		else
			echo "Oscam.config file not exist"
			OSC_not=1
		fi

		if [ -f "$OSS_PATH" ]; then
			echo "Oscam.server file exist"
		else
			echo "Oscam.server file not exist"
			OSS_not=1
		fi

		if [ -f "$OSU_PATH" ]; then
			echo "Oscam.user file exist"
		else
			echo "Oscam.user file not exist"
			OSU_not=1
		fi

		if [ "$OSC_not" -eq 1 ] || [ "$OSS_not" -eq 1 ] || [ "$OSU_not" -eq 1 ]; then
			MESSAGE="OSCAM config or server or user not exist"
			TIMEOUT=3
			python "$MESSAGE_PATH" "$MESSAGE" "$msg_type" "$TIMEOUT" >> "$LOGFILE" 2>&1
			TIMEOUT=1		# wieder zurueck setzen
		else
			echo "Oscam files all exist"
		fi

	else
		echo "Config Directory not exist"
		TIMEOUT=3
		MESSAGE="OSCAM config Direction not exist"
		python "$MESSAGE_PATH" "$MESSAGE" "$msg_type" "$TIMEOUT" >> "$LOGFILE" 2>&1
		TIMEOUT=1		# wieder zurueck setzen
	fi
}
###########################################################################

check_binary() {
	echo "----------------------------------------------------------------------------------------------------------------------- check Binary exist und dateirechte"
	
	if [ -f "$CAM_BINARY" ]; then
		# Berechtigungen der Datei auslesen
		PERMISSIONS=$(stat -c "%a" $CAM_BINARY)
		echo "Aktuelle Berechtigungen: $PERMISSIONS"
		if [[ -s "$CAM_BINARY" ]]; then
			echo "Die Datei $CAM_BINARY existiert und hat Inhalt" 
			# Überprüfen, ob die Berechtigungen auf 755 gesetzt sind
			if [ "$PERMISSIONS" != "755" ]; then
				echo "Berechtigungen sind nicht korrekt, werden auf 755 gesetzt"
				# Setze die Berechtigungen auf 755
				chmod 755 $CAM_BINARY
				echo "Neue Berechtigungen: $(stat -c "%a" $CAM_BINARY)"
				MESSAGE="$CAM Binaryhatte keine 755 rechte , 755 gemacht - Oscam not Startet "
				TIMEOUT = 3
				python "$MESSAGE_PATH" "$MESSAGE" "$msg_type" "$TIMEOUT" >> "$LOGFILE" 2>&1
				TIMEOUT=1		# wieder zurueck setzen
			else
				echo "Berechtigungen sind bereits korrekt"
			fi
		else
			echo "Kopiere Binary backup nach $CAM_BINARY" 
			cp /etc/tuxbox/config/oscamicamall/binary/backup/oscamicamall $CAM_BINARY
			echo "file copiert"
			chmod +x $CAM_BINARY
			echo "rechte gesetzt "
			echo "Die Datei $CAM_BINARY existiert, ist aber leer."
			MESSAGE="$CAM Binary ist 0 byts - Binary copiert "
			TIMEOUT = 5
			python "$MESSAGE_PATH" "$MESSAGE" "$msg_type" "$TIMEOUT" >> "$LOGFILE" 2>&1
			TIMEOUT=1		# wieder zurueck setzen
		fi

	else
		echo "Kopiere Binary backup nach $CAM_BINARY" 
		cp /etc/tuxbox/config/oscamicamall/binary/backup/oscamicamall $CAM_BINARY
		echo "file copiert"
		chmod +x $CAM_BINARY
		echo "rechte gesetzt "
		echo " $CAM Binary not exist"
		MESSAGE="$CAM Binary not exist - Binary copiert "
		TIMEOUT = 5
		python "$MESSAGE_PATH" "$MESSAGE" "$msg_type" "$TIMEOUT" >> "$LOGFILE" 2>&1
		TIMEOUT=1		# wieder zurueck setzen
	fi

	
}

check_readerupdate() {
	# ------------------------------------------------ check oscam.server oder cccam.cfg , kann man noch script aufrufen einbeun 
	echo "----------------------------------------------------------------------------------------------------------------------- check oscam.server oder cccam.cfg exist "
	if [ -f "/tmp/oscam.server" ] || [ -f "/tmp/CCcam.cfg" ]; then
		echo " es ist eine datei vorhnaden " 
		MESSAGEENDE="oscam.server or cccam.cfg in tmp exist \ndu kannst das script aufrufen"
		messageout=1
		echo $messageout 
	else
		echo "keine Dateien existieren." 
		messageout=0
	
	fi
	echo "###########################################################"
}
###########################################################################

port_auslesen() {
	echo "----------------------------------------------------------------------------------------------------------------------- port auslesen"

	# httpport aus oscam.conf auslesen
	HTTP_PORT=$(grep -E '^httpport\s*=' $OSC_PATH | awk -F'=' '{print $2}' | tr -d ' ')
	# Überprüfen, ob der Port erfolgreich ausgelesen wurde
	if [ -z "$HTTP_PORT" ]; then
		echo "Fehler: httpport konnte nicht aus oscam.conf ausgelesen werden."
		#exit 1
	fi
	echo "###########################################################"
	echo "HTTP Port ist: $HTTP_PORT"
	echo "###########################################################"
	echo "">> $LOGFILE
}
###########################################################################

check_oscam_start_ok() {
	echo "----------------------------------------------------------------------------------------------------------------------- check oscam start"

	RETVAL=1
	[ -e $PIDFILE ] && RETVAL=0
	echo " $RETVAL  "

	if [ "$RETVAL" -eq "0" ]; then
		echo "retval ok "
	  

		echo "##########################################################"
		# Prüfen, ob der HTTP_PORT definiert und nicht leer ist
		if [ -n "$HTTP_PORT" ]; then
			 # Überprüfung des OSCAM WebIF
			echo "Check WebIF..."
			# WEBIF_CHECK=$(curl -s -o /dev/null -w "%{http_code}" "http://localhost:$HTTP_PORT") # Ändere die Portnummer, falls nötig
			WEBIF_CHECK=$(wget --spider -S "http://localhost:$HTTP_PORT" 2>&1 | grep "HTTP/" | awk '{print $2}')
			#echo " $WEBIF_CHECK"
			#echo " Überprüfe WebIF... warte 10 sec"
			sleep 1
			SLEEP_STATUS=$?
			#echo "Status nach sleep: $SLEEP_STATUS"
			#echo " Überprüfe WebIF... gewartet"	

			if [ "$WEBIF_CHECK" -eq "200" ]; then
				echo "WebIF running -------   $IP_ADDR:$HTTP_PORT"
				
				# Beispielnachricht, die gesendet werden soll , ACHTUNG nach = darf kein Leerzeichen sein , dann geht es nicht
				MESSAGE="OSCAM Webif is running ------ $IP_ADDR:$HTTP_PORT "
				TIMEOUT=3
				# Python-Skript aufrufen
				python "$MESSAGE_PATH" "$MESSAGE" "$msg_type" "$TIMEOUT" >> "$LOGFILE" 2>&1
				TIMEOUT=1		# wieder zurueck setzen
				
			else
				echo "WebIF nicht erreichbar, HTTP Status: $WEBIF_CHECK"
				MESSAGE="OSCAM not start - Oscam Webif is not running."
				MESSAGE="$ERROR_MESSAGE"
				echo "$ERROR_MESSAGE"
				echo "$MESSAGE"
				# Python-Skript aufrufen
				TIMEOUT=3
				python "$MESSAGE_PATH" "$MESSAGE" "$msg_type" "$TIMEOUT" >> "$LOGFILE" 2>&1
				TIMEOUT=1		# wieder zurueck setzen
			
			fi
		else
			echo "Port ist null "
		fi
	else
		echo " retval fail "
		echo "FAILED Oscam not running "
		MESSAGE=$ERROR_MESSAGE
		#MESSAGE="OSCAM not start - Oscam Webif is not running."
		TIMEOUT=5
		python "$MESSAGE_PATH" "$MESSAGE" "$msg_type" "$TIMEOUT" >> "$LOGFILE" 2>&1
		TIMEOUT=1		# wieder zurueck setzen
	fi

}
binary_update() {
	# Binary Update
	# Prüfen, ob die neue Binary existiert
	if [ -f "/tmp/${CAMNAME}.new" ]; then
		MESSAGE="OSCAMBINARY UPDATE"
		echo "Gefunden: Neue Binary für $CAM_BINARY im /tmp Verzeichnis."

		# Nachricht anzeigen
		msg_type=0  # Typ 0 = Ja/Nein-Frage
		TIMEOUT=4
		python3 "$MESSAGE_PATH" "$MESSAGE" "$msg_type" "$TIMEOUT" >>  $LOGFILE

		# Benutzerantwort auswerten
		echo "Warte auf Benutzerantwort..." >> "$LOGFILE"
		response=$(curl -s "$ANSWER_URL")  # API-Abfrage durchführen
		echo "API-Antwort: $response" >>  $LOGFILE
		echo "Abgefragte URL: $ANSWER_URL"


		# Antwort aus XML extrahieren
		# Pfad zur Antwortdatei
		ANSWER_FILE="/tmp/oscam_answer.txt"

		# Prüfen, ob die Datei existiert und nicht leer ist
		if [[ -s "$ANSWER_FILE" ]]; then
			if grep -q "<e2statetext>Antwort lautet JA!" "$ANSWER_FILE"; then
				user_response="yes"
			else
				user_response="no"
			fi
		    
		else
			echo "Antwortdatei $ANSWER_FILE existiert nicht oder ist leer!" >> "$LOGFILE"
			user_response="no"
		fi

		echo "Antwort Neue Binary ist: $user_response (yes = weiter, no = abbrechen)"

		if [ "$user_response" = "yes" ]; then
			# Update-Skript ausführen
			echo "Starte Binary-Update für $CAM_BINARY"

			#etc/tuxbox/config/oscamicamall/scripte/binary_update.sh

			# Neue Binary kopieren und ausführbar machen
			echo "Kopiere neue Binary /tmp/${CAMNAME}.new nach $CAM_BINARY" 
			cp /tmp/${CAMNAME}.new $CAM_BINARY
			echo "file copiert"
			chmod +x $CAM_BINARY
			echo "rechte gesetzt "

			sleep 1
			MESSAGE="OSCAMBINARY UPDATE FINISH"
			msg_type=1
			TIMEOUT=2
			python3 "$MESSAGE_PATH" "$MESSAGE" "$msg_type" "$TIMEOUT"
			rm -f /tmp/${CAMNAME}.new
		else
			# Update abbrechen
			MESSAGE="OSCAMBINARY UPDATE ABGEBROCHEN"
			msg_type=1
			TIMEOUT=2
			python3 "$MESSAGE_PATH" "$MESSAGE" "$msg_type" "$TIMEOUT"
			echo "Update wurde abgebrochen." >> "$LOGFILE"
		fi
	else
		echo "Keine neue Binary für $CAM_BINARY gefunden."
		
	fi

}
###########################################################################
check_camrunning () {
	echo "----------------------------------------------------------------------------------------------------------------------- check ist eine cam noch running "
	echo " zu check cam runnig"
	echo " "
	/etc/tuxbox/config/oscamicamall/scripte/check_cam.sh
	echo " zurueck check cam runnig"
	echo " "
}
###########################################################################
check_oscamserverversion () {
	echo "----------------------------------------------------------------------------------------------------------------------- check oscam version server "
	# Pfad zur OSCam-Informationsdatei
	OSCAM_INFO_FILE="/tmp/.oscam/oscam.version"  # Beispiel: /usr/local/etc/oscam

	# Zielort im /tmp-Ordner
	TMP_FILE="/tmp/oscam.version"

	# Datei in /tmp kopieren
	cp "$OSCAM_INFO_FILE" "$TMP_FILE"

	if [ -e "$TMP_FILE" ]; then
		camversion=99999
		cpuversion=""

		while IFS= read -r zeile; do
			if [[ $zeile == *"Version"* ]]; then
				echo "cam version gefunden"
				camversion=$(echo "$zeile" | cut -d':' -f2 | xargs)
				break  # Sobald die Version gefunden wurde, die Schleife beenden
			fi
		done < "$TMP_FILE"

		if [ -n "$camversion" ]; then
			echo "cam version ausgabe: $camversion"
		else
			echo "cam version nicht gefunden"
		fi

		while IFS= read -r zeile; do
			if [[ $zeile == *"Compiler"* ]]; then
				echo "cpu version gefunden"
				cpuversion=$(echo "$zeile" | cut -d':' -f2 | xargs)
				break  # Sobald die Version gefunden wurde, die Schleife beenden
			fi
		done < "$TMP_FILE"

		if [ -n "$cpuversion" ]; then
			echo "cpu version ausgabe: $cpuversion"
		else
			echo "cpu version nicht gefunden"
		fi
	fi

	
	result=$(echo "$camversion" | cut -d'-' -f2-)
	echo "$result" 

	camversion=$(echo "$result" | cut -d'-' -f1)
	echo "$camversion" 

	echo "cpu version" 
	result=$(echo "$cpuversion" | cut -d'-' -f1)
	echo "$result" 
	cpuversion="$result"
	echo "$cpuversion" 

	CPU_FILE="/etc/tuxbox/config/oscamicamall/versionen/cpu"
	# Datei erstellen oder überschreiben mit cpuversion
	echo -n "$cpuversion" > "$CPU_FILE"

	echo "zu download datei" 
	/etc/tuxbox/config/oscamicamall/scripte/update_oscam.sh			# datei version herunterladen in version 
	sleep 2
	echo "von download zurueck" 

	local_path="/etc/tuxbox/config/oscamicamall/versionen/version.new"
###################################################################################################################
	# Überprüfen, ob die Datei existiert
	if [ -f $local_path ]; then
		# Versionsnummer aus der Datei lesen
		file_version=$(head -n 1 "$local_path" | tr -d '\r')

		#with open($local_path, 'r') as datei:
        #    file_version = datei.read().strip()  # Den gelesenen Text bereinigen

		echo "Gelesene Version aus der Datei: $file_version"
		echo "camversion: $camversion"

		# Versionsvergleich
		if [[ $(echo -e "$file_version\n$camversion" | sort -V | tail -n1) == "$file_version" && "$file_version" != "$camversion" ]]; then
			echo "Die datei Version ist größer der camversion."

			MESSAGE="OSCAMVERSION UPDATE"
			echo "Gefunden: Neue Oscam $file_version alte version : $camversion ."

			# Nachricht anzeigen
			msg_type=0  # Typ 0 = Ja/Nein-Frage
			TIMEOUT=4
			python3 "$MESSAGE_PATH" "$MESSAGE" "$msg_type" "$TIMEOUT" >>  $LOGFILE

			# Antwort aus XML extrahieren
			# Pfad zur Antwortdatei
			ANSWER_FILE="/tmp/oscam_answer.txt"

			# Prüfen, ob die Datei existiert und nicht leer ist
			if [[ -s "$ANSWER_FILE" ]]; then
				if grep -q "<e2statetext>Antwort lautet JA!" "$ANSWER_FILE"; then
					user_response="yes"
				else
					user_response="no"
				fi
				
			else
				echo "Antwortdatei $ANSWER_FILE existiert nicht oder ist leer!" >> "$LOGFILE"
				user_response="no"
			fi

			echo "Antwort : $user_response (yes = weiter, no = abbrechen)"

			if [ "$user_response" = "yes" ]; then
				# Update-Skript ausführen
				echo "Starte Oscam-Update für $CAM_BINARY"

				camstop																# erst cam stoppen
				echo "zu download oscam server"
				/etc/tuxbox/config/oscamicamall/scripte/download_oscam.sh			# datei oscambinary herunterladen
				echo "zurueck von download oscam server"
				sleep 1
				MESSAGE="OSCAMBINARY UPDATE FINISH"
				msg_type=1
				TIMEOUT=2
				python3 "$MESSAGE_PATH" "$MESSAGE" "$msg_type" "$TIMEOUT"
				camstart
				check_oscam_start_ok
						
				
			else
				# Update abbrechen
				MESSAGE="OSCAM UPDATE ABGEBROCHEN"
				msg_type=1
				TIMEOUT=2
				python3 "$MESSAGE_PATH" "$MESSAGE" "$msg_type" "$TIMEOUT"
				echo "Update wurde abgebrochen."
			fi


			
		else
			echo "Die datei Version ist kleiner oder gleich,  als die camversion."
		fi

		
	else
		echo "Die Datei $local_path existiert nicht."
	fi
	

}




###########################################################################
ende_message() {
	echo "----------------------------------------------------------------------------------------------------------------------- message am ende fuer user "
	echo $messageout 
	if [ "$messageout" -eq 1 ]; then
		echo " es ist eine datei vorhnaden " 
		MESSAGE=$MESSAGEENDE
		sleep 3
		TIMEOUT=5
		python "$MESSAGE_PATH" "$MESSAGE" "$msg_type" "$TIMEOUT" >> "$LOGFILE" 2>&1
		TIMEOUT=1  # Wieder zurücksetzen
	else
		echo "keine message." 
	
	fi
	echo "###########################################################"
}

###########################################################################

cam_remove_clean () {
	echo "----------------------------------------------------------------------------------------------------------------------- remove/ clean files"
	rm -rf /tmp/*.info* /tmp/*.tmp* /tmp/*share* /tmp/*.pid* /tmp/*sbox*
}
###########################################################################


	#######################################################  DreamoSat Nonsolosat Pure 2 #######################################################################
Action=$1
echo "---------------------------------------------------------------------------------------------------------------------------------------------------------- Befehle "
echo "$Action"
echo "---------------------------------------------------------------------------------------------------------------------------------------------------------- Action ist : "$Action
echo "$1"
if test	"$Action" =	"cam_startup" ;	then
	
	if test	-z "${PID}" ; then
		echo "------------------------------------------------------------------------------------------------------------------------------------------------------ Befehl Pid"
		camstop
		configfiles_vorhanden
		check_binary
		binary_update
		port_auslesen
		camstart
		check_oscam_start_ok
		ende_message
	else
		echo "------------------------------------------------------------------------------------------------------------------------------------------------------ Befehl is running"
		echo "$CAM already running, exiting..."
	fi

elif test	"$Action" =	"cam_res" ;	then
	echo "---------------------------------------------------------------------------------------------------------------------------------------------------------- Befehl cam res"
	camstop
	sleep 1
	configfiles_vorhanden
	check_binary
	binary_update
	check_readerupdate
	port_auslesen
	sleep 1
	camstart
	check_oscam_start_ok
	check_oscamserverversion
	ende_message

elif test "$Action"	= "cam_down" ; then
	echo "---------------------------------------------------------------------------------------------------------------------------------------------------------- Befehl cam down"
	camstop
	sleep 1
	cam_remove_clean

elif test "$Action"	= "cam_up" ; then
	echo "---------------------------------------------------------------------------------------------------------------------------------------------------------- Befehl cam up"
	cam_remove_clean
	configfiles_vorhanden
	check_binary
	binary_update
	check_readerupdate
	port_auslesen
	check_camrunning
	sleep 1
	camstart
	check_oscam_start_ok
	check_oscamserverversion
	
	ende_message
	



############################################################################# openatv ###############################################

	
echo "---------------------------------------------------------------------------------------------------------------------------------------------------------- 1 ist : "$1
elif test "$Action"	= "start" ; then
	echo "------------------------------------------------------------------------------------------------------------------------------------------------------ Befehl Start"
	cam_remove_clean
	configfiles_vorhanden
	check_binary
	binary_update
	check_readerupdate
	port_auslesen
	check_camrunning
	sleep 1
	camstart
	check_oscam_start_ok
	check_oscamserverversion
	
	ende_message
	
	

elif test "$Action"	= "stop" ; then
	echo "------------------------------------------------------------------------------------------------------------------------------------------------------ Befehl Stop"
	cam_remove_clean
	camstop
	sleep 1
	
	

elif test "$Action"	= "restart" ; then				# nur restart ohne reload???
	echo "------------------------------------------------------------------------------------------------------------------------------------------------------ Befehl Restart"
	camstop
	sleep 1
	cam_remove_clean
	configfiles_vorhanden
	check_binary
	binary_update
	check_readerupdate
	port_auslesen
	check_camrunning
	sleep 1
	camstart
	check_oscam_start_ok
	check_oscamserverversion
	
	ende_message
	
		

elif test "$Action"	= "version" ; then
	echo "------------------------------------------------------------------------------------------------------------------------------------------------------ Befehl Version"
	camversion_info
		

elif test "$Action"	= "info" ; then
	echo "------------------------------------------------------------------------------------------------------------------------------------------------------ Befehl Info"
	camversion_info
		

else
	echo "------------------------------------------------------------------------------------------------------------------------------------------------------ falscher befehl , nicht vorhanden"
	echo "Usage: $0 start|stop|restart"			# wenn ein falscher befehl kommt wird die ausgabe zurueck gegeben
	exit 1
	

fi
	

exit 0