Advertisement
Guest User

Zusi-Patch (Version 2)

a guest
Mar 20th, 2012
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.53 KB | None | 0 0
  1. #!/bin/bash
  2. MAXLEN=156
  3.  
  4. if [ -z $1 ]; then
  5.     echo "Bitte den kompletten Pfad zum Zusi-Datenverzeichnis mit abschließendem Schrägstrich angeben, z.B.:"
  6.     echo "/home/xyz/.wine/dosdevices/C:/Zusi/Daten/"
  7.     exit
  8. fi
  9.  
  10. if [ ! -e ./ZusiSim.exe ]; then
  11.     echo "Bitte die Datei im gleichen Verzeichnis wie ZusiSim.exe ausführen."
  12.     exit
  13. fi
  14.  
  15. # Pfad für sed-Kommando ("/" escapen)
  16. path=`echo $1 | sed -e 's/\//\\\\\//g'`
  17.  
  18. # Alle Wave-Dateien finden und ggf. in höher gelegenes Verzeichnis kopieren
  19. # Dabei evtl. kopierte Dateien eines früheren Laufes nicht beachten (-mindepth 2)
  20. find $1 -mindepth 2 -iname '*.wav' | while read i; do
  21.     # Relativen Pfad mit Backslash statt Slash erstellen
  22.     # (für sed den Backslash escapen)
  23.     rel=`echo $i | sed -e "s/$path//g" | sed -e 's/\//\\\\/g'`
  24.     rel_sed=`echo $i | sed -e "s/$path//g" | sed -e 's/\//\\\\\\\\/g'`
  25.    
  26.     # Gesamtlänge des Pfades, abzüglich "-Zeichen am Schluss
  27.     let len=${#i}
  28.     echo -E $rel "("$len")"
  29.    
  30.     if [ $len -ge $MAXLEN ]; then
  31.         # Datei auf oberste Ebene des Datenverzeichnisses kopieren
  32.         basename=`basename $i`
  33.         cp "$i" "$1$basename"
  34.    
  35.         # Entsprechende Anzahl Leerzeichen einfügen, um die Dateigröße der ZusiSim.exe nicht zu verändern
  36.         let numspaces=${#rel}-${#basename}+1
  37.         spaces=`seq -s "%LZ%" $numspaces | sed 's/[0-9]//g'`
  38.    
  39.         # Relativen Pfad in der ZusiSim.exe ersetzen
  40.         sed -i -e "s/$rel_sed\"/$basename\"$spaces/g" ./ZusiSim.exe
  41.     else
  42.         echo "(keine Ersetzung notwendig)"
  43.     fi
  44. done
  45.  
  46. # Leerzeichen-Marker ersetzen
  47. sed -i -e "s/%LZ%/ /g" ./ZusiSim.exe
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement