Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- SEPAXMLDATEI=$1
- PAINSOURCEFILE="pain.008.002.02.xsl"
- PAINTEMPFILE="paintemp.xsl"
- HTMLDATEI="SEPA.html"
- # Prüfen, ob xsltproc auf dem System installiert ist
- command -v xsltproc >/dev/null && continue || {
- echo -e "Paket \"xsltproc\" wurde nicht gefunden!"
- echo -e "Bitte installieren Sie das Paket \"xsltproc\" über Ihren Paketmanager (apt-get, zypper, ....)!"
- exit 1
- }
- # Prüfen, ob eine SEPA XML Datei als Paramater angegeben wurde
- if [ $# -le 0 ];
- then
- echo "Bitte den Dateinamen der SEPA XML Datei als Paramater angeben, Beispiel \"./show-sepa.sh SEPA.xml\""
- exit 0
- else
- # Prüfen, ob die angegebene SEPA XML Datei überhaupt vorhanden ist
- if [ ! -f $SEPAXMLDATEI ];
- then
- echo "Angegebene Datei $SEPAXMLDATEI nicht vorhanden! Bitte prüfen!"
- exit 0
- fi
- # Pain Format der angegebenen SEPA XML Datei ermitteln
- # painformat=$(grep -E -o -m 1 "pain\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,2})" $SEPAXMLDATEI)
- sl_painformat_anzahl=$(grep -E -c "pain\.008\.([0-9]{1,3})\.([0-9]{1,2})" $SEPAXMLDATEI)
- sl_painformat=$(grep -E -o -m 1 "pain\.008\.([0-9]{1,3})\.([0-9]{1,2})" $SEPAXMLDATEI)
- if [ $sl_painformat_anzahl -eq 0 ];
- then
- # Bei der angegebenen SEPA XML Datei handelt es sich nicht um eine SEPA-Laschtrift
- echo -e "Bei der angegebenen SEPA XML Datei handelt es sich nicht um eine SEPA-Laschtrift."
- echo -e "Aktuell werden nur SEPA-Lastschriften unterstützt!"
- exit 0
- fi
- # Temporäre XSL Datei mit korrektem pain Format erstellen
- cp $PAINSOURCEFILE $PAINTEMPFILE
- # Das Vorkommen von "pain.008.002.02" zu vorhandenem pain Format der $SEPAXMLDATEI ersetzen
- sed -i "s/pain.008.002.02/$sl_painformat/g" $PAINTEMPFILE
- # xsltproc spezifischen Fehler umgehen (xsl:version: only 1.0 features are supported)
- sed -i 's/xsl:stylesheet version="2.0"/xsl:stylesheet version="1.0"/g' $PAINTEMPFILE
- # HTML Datei anhand der XLS erstellen
- xsltproc -o $HTMLDATEI $PAINTEMPFILE $SEPAXMLDATEI
- # Temporäre XSL Datei der pain Datei wieder löschen
- rm -f "$PAINTEMPFILE"
- # Erstellte HMTL Datei mit dem Standardbrowser öffnen
- if [ ! -f $HTMLDATEI ];
- then
- # HTML Datei nicht vorhanden
- echo "HTML Datei nicht vorhanden, es muss bei der Erstellung etwas schief gelaufen sein...."
- exit 0
- else
- # HTML Datei vorhanden, diese wird nun im Standardbrowser geöffnet
- echo -e "Die Datei \"$HTMLDATEI\" wird im Browser geöffnet...."
- xdg-open $HTMLDATEI
- # Abfrage, ob die generierte HTML Datei gleich wieder gelöscht werden soll
- read -p "Soll die erstellte Datei \"$HTMLDATEI\" gleich wieder gelöscht werden? J/N: " -N 1 antwortloeschen
- echo ""
- if [ "$antwortloeschen" == "J" ] | [ "$antwortloeschen" == "j" ];
- then
- # HTML Datei löschen
- rm $HTMLDATEI
- echo -e "\nDatei \"$HTMLDATEI\" erfolgreich gelöscht!"
- fi
- fi
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement