Advertisement
Guest User

Untitled

a guest
Jan 17th, 2014
310
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.81 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. SEPAXMLDATEI=$1
  4. PAINSOURCEFILE="pain.008.002.02.xsl"
  5. PAINTEMPFILE="paintemp.xsl"
  6. HTMLDATEI="SEPA.html"
  7.  
  8. # Prüfen, ob xsltproc auf dem System installiert ist
  9. command -v xsltproc >/dev/null && continue || {
  10.     echo -e "Paket \"xsltproc\" wurde nicht gefunden!"
  11.     echo -e "Bitte installieren Sie das Paket \"xsltproc\" über Ihren Paketmanager (apt-get, zypper, ....)!"
  12.     exit 1
  13. }
  14.  
  15. # Prüfen, ob eine SEPA XML Datei als Paramater angegeben wurde
  16. if [ $# -le 0 ];
  17.     then
  18.         echo "Bitte den Dateinamen der SEPA XML Datei als Paramater angeben, Beispiel \"./show-sepa.sh SEPA.xml\""
  19.         exit 0
  20. else
  21.  
  22.     # Prüfen, ob die angegebene SEPA XML Datei überhaupt vorhanden ist
  23.     if [ ! -f $SEPAXMLDATEI ];
  24.     then
  25.         echo "Angegebene Datei $SEPAXMLDATEI nicht vorhanden! Bitte prüfen!"
  26.         exit 0
  27.     fi
  28.  
  29.     # Pain Format der angegebenen SEPA XML Datei ermitteln
  30.     # painformat=$(grep -E -o -m 1 "pain\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,2})" $SEPAXMLDATEI)
  31.     sl_painformat_anzahl=$(grep -E -c "pain\.008\.([0-9]{1,3})\.([0-9]{1,2})" $SEPAXMLDATEI)
  32.     sl_painformat=$(grep -E -o -m 1 "pain\.008\.([0-9]{1,3})\.([0-9]{1,2})" $SEPAXMLDATEI)
  33.  
  34.     if [ $sl_painformat_anzahl -eq 0 ];
  35.     then
  36.         # Bei der angegebenen SEPA XML Datei handelt es sich nicht um eine SEPA-Laschtrift
  37.         echo -e "Bei der angegebenen SEPA XML Datei handelt es sich nicht um eine SEPA-Laschtrift."
  38.         echo -e "Aktuell werden nur SEPA-Lastschriften unterstützt!"
  39.         exit 0
  40.     fi
  41.  
  42.     # Temporäre XSL Datei mit korrektem pain Format erstellen
  43.     cp $PAINSOURCEFILE $PAINTEMPFILE
  44.    
  45.     # Das Vorkommen von "pain.008.002.02" zu vorhandenem pain Format der $SEPAXMLDATEI ersetzen
  46.     sed -i "s/pain.008.002.02/$sl_painformat/g" $PAINTEMPFILE
  47.    
  48.     # xsltproc spezifischen Fehler umgehen (xsl:version: only 1.0 features are supported)
  49.     sed -i 's/xsl:stylesheet version="2.0"/xsl:stylesheet version="1.0"/g' $PAINTEMPFILE
  50.    
  51.     # HTML Datei anhand der XLS erstellen
  52.     xsltproc -o $HTMLDATEI $PAINTEMPFILE $SEPAXMLDATEI
  53.  
  54.     # Temporäre XSL Datei der pain Datei wieder löschen
  55.     rm -f "$PAINTEMPFILE"
  56.    
  57.     # Erstellte HMTL Datei mit dem Standardbrowser öffnen
  58.     if [ ! -f $HTMLDATEI ];
  59.     then
  60.         # HTML Datei nicht vorhanden
  61.         echo "HTML Datei nicht vorhanden, es muss bei der Erstellung etwas schief gelaufen sein...."
  62.         exit 0
  63.     else
  64.         # HTML Datei vorhanden, diese wird nun im Standardbrowser geöffnet
  65.         echo -e "Die Datei \"$HTMLDATEI\" wird im Browser geöffnet...."
  66.         xdg-open $HTMLDATEI
  67.  
  68.         # Abfrage, ob die generierte HTML Datei gleich wieder gelöscht werden soll
  69.         read -p "Soll die erstellte Datei \"$HTMLDATEI\" gleich wieder gelöscht werden? J/N: " -N 1 antwortloeschen
  70.         echo ""
  71.         if [ "$antwortloeschen" == "J" ] | [ "$antwortloeschen" == "j" ];
  72.         then
  73.             # HTML Datei löschen
  74.             rm $HTMLDATEI
  75.             echo -e "\nDatei \"$HTMLDATEI\" erfolgreich gelöscht!"
  76.         fi
  77.     fi
  78.  
  79. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement