#!/bin/bash

VERSION="v1.0"
PROG=`basename $0`
DATUM="24.02.2016"
AUTOR="Andre Geißler"

ech () {
	echo "$1" > /tmp/log
}

if [ "$8" == "" ]; then
	echo ""
	echo "  Aufruf:"
	echo "   $PROG ARC,[dir] CONV,[D2U|U2D] PDF,[Y] MAILCONV,[ma[,ma][,...]] MAILPDF,[ma[,ma][,...]] COPYCONV,[dir] COPYPDF,[dir]"
	echo ""
	echo "  Beschreibung:"
	echo "   $PROG nimmt Eingaben (Dateiinhalte) auf stdin entgegen, archiviert sie und verschickt"
	echo "   und/oder kopiert sie nach einer eventuellen Konvertierung (PDF, DOS2Unix, Unix2DOS)."
	echo ""
	echo "   Alle Parameter müssen angegeben werden."
	echo "   Soll einer nicht benutzt werden, wird nach dem Komma nichts angegeben."
	echo "   Pfade können ohne abschließendes / eingegeben werden."
	echo ""
	echo "  Parameter:"
	echo "   ARC,[Pfad]                          Archivierung nach Pfad"
	echo "   CONV,[D2U|U2D]                      Konvertiere Dateiendeformat"
	echo "                                       DOS nach Linux (D2U) bzw. anders herum (U2D)"
	echo "   PDF,[Y]                             Erstelle PDF Format der Datei Y=Ja"
	echo "   MAILCONV,[Adresse[,Adresse][,...]]  Sende Konvertierte Datei an Mailadresse(n)"
	echo "   MAILPDF,[Adresse[,Adresse][,...]]   Sende PDF Datei an Mailadresse(n)"
	echo "   COPYCONV,[Pfad]                     Kopiere Konvertierte Datei nach Pfad"
	echo "   COPYPDF,[Pfad]                      Kopiere PDF Datei nach Pfad"

	echo " "
	echo "  Beispiel:"
	echo "   cat /etc/hosts | ./process.sh \\"
	echo "    ARC,/tmp \\"
	echo "    CONV,D2U \\"
	echo "    PDF,Y \\"
	echo "    MAILCONV,help@conet.de,ageissler@conet.de \\"
	echo "    MAILPDF,help@conet.de,test@er.de \\"
	echo "    COPYCONV,/path1 \\"
	echo "    COPYPDF,/tmp/C \\"
	echo "    FILENAME,MTB_KVxxxx_`date +%F`_`date +%H%M%S`"
	echo ""
	echo "  $PROG Version $VERSION vom $DATUM. Zuletzt editiert von $AUTOR."
	echo ""
	exit;
fi

ARC=$1
CONV=$2
PDF=$3
MAILCONV=$4
MAILPDF=$5
COPYCONV=$6
COPYPDF=$7
FILENAME=$8

ARCV=`echo $ARC | cut -d, -f2`
#echo "$ARCV"

CONVV=`echo $CONV | cut -d, -f2`
#echo "$CONVV"

PDFV=`echo $PDF | cut -d, -f2`
#echo "$PDFV"

MAILCONVV=`echo $MAILCONV | cut -d, -f2-`
#echo "$MAILCONVV"

MAILPDFV=`echo $MAILPDF | cut -d, -f2-`
#echo "$MAILPDFV"

COPYCONVV=`echo $COPYCONV| cut -d, -f2`
#echo "$COPYCONVV"

COPYPDFV=`echo $COPYPDF | cut -d, -f2`
#echo "$COPYPDFV"

FILENAMEV=`echo $FILENAME | cut -d, -f2`
#echo "$FILENAMEV"

#TMPFILE=`cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1`
TMPFILE=$FILENAMEV
TMPFILE="/tmp/$TMPFILE.input"
#echo $TMPFILE

#CONVFILE=`cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1`
CONVFILE=$FILENAMEV
CONVFILE="/tmp/$CONVFILE.txt"
#echo $CONVFILE

#PDFFILE=`cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1`
PDFFILE=$FILENAMEV
PDFFILE="/tmp/$PDFFILE.pdf"
#echo $PDFFILE

cat > $TMPFILE

echo "Inhalt liegt in $TMPFILE ab. Starte Verarbeitung."

if [ "$ARCV" != "" ]; then
	echo "Archiviere $TMPFILE nach $ARCV/$FILENAMEV.txt"
	cp $TMPFILE $ARCV/$FILENAMEV.txt
else
	echo "Keine Archivierung"
fi
PROCFILE=$TMPFILE

if [ "$CONVV" == "D2U" ]; then
	echo "Konvertiere $TMPFILE nach $CONVFILE (dos2unix)"
	dos2unix -n $TMPFILE $CONVFILE
	PROCFILE=$CONVFILE
elif [ "$CONVV" == "U2D" ]; then
	echo "Konvertiere $TMPFILE nach $CONVFILE (unix2dos)"
	unix2dos -n $TMPFILE $CONVFILE
	PROCFILE=$CONVFILE
else
	echo "Keine Konvertierung"
fi

if [ "$PDFV" == "Y" ]; then
	ENSCRIPT=`which enscript`
	PS2PDF=`which ps2pdf`
	if [ "$ENSCRIPT" == "" ]; then
		echo "enscript konnte nicht gefunden werden. Abbruch!"
		exit 1
	fi
	echo "enscript gefunden"
	if [ "$PS2PDF" == "" ]; then
		echo "ps2pdf konnte nicht gefunden werden. Abbruch!"
		exit 1
	fi
	echo "ps2pdf gefunden"
	echo "Konvertiere $PROCFILE nach $PDFFILE"
	$ENSCRIPT -s 0 -L 72 -f Courier@9/7.5 -B -r -p- $PROCFILE | $PS2PDF - $PDFFILE
else
	echo "Keine Umwandlung in PDF"
fi

if [ "$MAILCONVV" != "" ]; then
	echo "Maile $CONVFILE an $MAILCONVV"
else
	echo "Textdatei wird nicht per Mail versendet"
fi

if [ "$MAILPDFV" != "" ]; then
	echo "Maile $PDFFILE an $MAILPDFV"
else
	echo "PDF wird nicht per Mail versendet"

fi

if [ "$COPYCONVV" != "" ]; then
	echo "Kopiere $CONVFILE nach $COPYCONVV/$FILENAMEV.txt"
	cp $CONVFILE $COPYCONVV/$FILENAMEV.txt
else
	echo "Textdatei wird nicht kopiert"
fi

if [ "$COPYPDFV" != "" ]; then
	echo "Kopiere $PDFFILE nach $COPYPDFV/$FILENAMEV.pdf"
	cp $PDFFILE $COPYPDFV/$FILENAMEV.pdf
else
	echo "PDF wird nicht kopiert"
fi

echo "Fertig"
echo ""
