#!/bin/bash
###############################################################################################################
# Titel: log
# Autor: Michael Kaden
# Datum: 29.06.2014
#
# Funktion:
# Dieses Skript ist ein Teilprogramm von fdtpoc. Es liest alle Dateien im Write-Spool-Verzeichnis ein und schreibt
# den Inhalt in das fdtpoc-Logfile.
#
# Zweck:
# Das Script ermöglicht als Write-Spooler die Verarbeitung der aus verschiedenen Skripten an das/die "Alphapoc 1500"
# zu sendenden Kommandos.
#
# Copyright (C) 2014 Michael Kaden
#
# Dieses Programm ist freie Software. Sie können es unter Beachtung der Nutzungsbedingungen benutzen, 
# weitergeben und modifizieren.
# Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, dass es Ihnen von Nutzen sein wird, 
# aber OHNE IRGENDEINE GARANTIE, sogar ohne die Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN 
# BESTIMMTEN ZWECK. 
###############################################################################################################

# Config-File einlesen
source /usr/local/smi/trx/etc/poc.conf

myname=$(echo "$0" | $awk -F/ '{ print $NF }')

# Device, zu dem die Daten gesendet werden sollen, aus dem eigenen Dateinamen bestimmen
device=$(echo "$myname" |$awk -F. '{ print $NF }')

# message system, aus dem eigenen Dateinamen bestimmen
msgsys=$(echo "$myname" |$awk -F. '{ print $1 }')

# Richtung(read/write), aus dem eigenen Dateinamen bestimmen
readwrite=$(echo "$myname" |$awk -F. '{ print $3 }')
case "$readwrite" in
	read)
		rxtx=rx
		;;
	write)
		rxtx=tx
		;;
esac

if [ -c "/dev/$device" ]; then
	# alle MQTT-Messages des Write-Spoolers in einer Endlosschleife einlesen
	while read -r message; do
		while read -r line; do
			# Zeilenumbrüche entfernen
			line="$(echo -ne "$line" | tr -d '\r\n')"
			# Alle Zeilen die nicht leer sind ins Logfile schreiben 
			if [ -n "$line" ]; then
				echo -e "$(date +"%b %d %H:%M:%S") $host $ScriptName: $rxtx $line" >> $logdir/$device.log
			fi
		done < <(echo -e "$message")
	done < <($mosquitto_sub -t "$(eval echo $TrxMqttLog)")
fi
exit 255
