#!/bin/bash

##########################################################################
# Wird von ini.sh getriggert
# json parsen und entsprechende Skripte triggern
# Der Server liefert exklusiv entweder
# - Mediaplayer-Konfiguration
# - GDS-Panel-Konfiguration
# - Token oder Passwort
# - action:vpn zur Etablierung eines VPN, falls noch keine besteht 
# - action:ssh zur Etablierung eines Reversetunnels, falls noch keiner besteht
# - action:reboot Neustart des Systems
# In Abhängigkeit des Inhaltes werden unterschiedliche Prozesse getriggert
##########################################################################

JSON="$(jq -r 'keys[0]' /home/snowtv/Downloads/tmp.json)"
JSON1="$(jq -r '.action' /home/snowtv/Downloads/tmp.json)"
JSONERR="$(jq -r '.error' /home/snowtv/Downloads/tmp.json)"
CFGGDS="$(jq -r '.cfgGDS' /home/snowtv/Downloads/tmp.json)"

if [ "$JSON" == "cfgCore" ]; then
	# bestehende Konfiguration sichern
	sudo -u snowtv cp /home/snowtv/bin/mc.cfg /home/snowtv/bin/mc.cfg.old
	sudo -u snowtv jq -r '.[]' /home/snowtv/Downloads/tmp.json | sudo -u snowtv tee /home/snowtv/bin/mc.cfg
	sudo -u snowtv /home/snowtv/bin/200.sh

elif [ "$JSON" = "cfgGDS" ]; then
	sudo -u snowtv snmpset localhost "$CFGGDS"
	sudo -u snowtv echo "$(date)  INFO: Write new thresholds to GDS Panel" | sudo tee -a /var/log/stv.log
	#sudo -u snowtv echo "{}" | sudo -u snowtv tee /home/snowtv/Downloads/tmp.json

elif [ "$JSON" = "tokenID" ]; then
	sudo -u snowtv echo "$(date)  INFO: neues Token geschrieben;Monitor-cfg hochgeladen"  | sudo tee -a /var/log/stv.log
	sudo -u snowtv jq -r '.tokenID' /home/snowtv/Downloads/tmp.json > /home/snowtv/bin/token
	#sudo -u snowtv echo "{}" | sudo -u snowtv tee /home/snowtv/Downloads/tmp.json
	#sudo -u snowtv /home/snowtv/bin/gdstshupl2s.sh

elif [ "$JSON" = "action" ] && [ "$JSON1" == "vpn" ]; then
	#sudo -u snowtv echo "{}" | sudo -u snowtv tee /home/snowtv/Downloads/tmp.json
	sudo -u snowtv /home/snowtv/bin/ovpnestabli.sh

elif [ "$JSON" = "action" ] && [ "$JSON1" == "ssh" ]; then
	#sudo -u snowtv echo "{}" | sudo -u snowtv tee /home/snowtv/Downloads/tmp.json
	sudo -u snowtv /home/snowtv/bin/ssh.sh

elif [ "$JSON" = "action" ] && [ "$JSON1" == "reboot" ]; then
	sudo -u snowtv echo "$(date)  INFO: System-Reboot, calling reboot.sh"  | sudo tee -a /var/log/stv.log
	#sudo -u snowtv echo "{}" | sudo -u snowtv tee /home/snowtv/Downloads/tmp.json
	sleep 1 && /bin/bash /home/snowtv/bin/reboot.sh

elif [ "$JSON" = "error" ] && [ "$JSONERR" = "token does not match" ]; then
	sudo -u snowtv echo "$(date)  ERROR: token does not match" | sudo tee -a /var/log/stv.log
	sudo -u snowtv /home/snowtv/bin/err_token.sh
else
	exit 1

fi

exit 0
