Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- MAXLEN=156
- if [ -z $1 ]; then
- echo "Bitte den kompletten Pfad zum Zusi-Datenverzeichnis mit abschließendem Schrägstrich angeben, z.B.:"
- echo "/home/xyz/.wine/dosdevices/C:/Zusi/Daten/"
- exit
- fi
- if [ ! -e ./ZusiSim.exe ]; then
- echo "Bitte die Datei im gleichen Verzeichnis wie ZusiSim.exe ausführen."
- exit
- fi
- # Pfad für sed-Kommando ("/" escapen)
- path=`echo $1 | sed -e 's/\//\\\\\//g'`
- # Alle Wave-Dateien finden und ggf. in höher gelegenes Verzeichnis kopieren
- # Dabei evtl. kopierte Dateien eines früheren Laufes nicht beachten (-mindepth 2)
- find $1 -mindepth 2 -iname '*.wav' | while read i; do
- # Relativen Pfad mit Backslash statt Slash erstellen
- # (für sed den Backslash escapen)
- rel=`echo $i | sed -e "s/$path//g" | sed -e 's/\//\\\\/g'`
- rel_sed=`echo $i | sed -e "s/$path//g" | sed -e 's/\//\\\\\\\\/g'`
- # Gesamtlänge des Pfades, abzüglich "-Zeichen am Schluss
- let len=${#i}
- echo -E $rel "("$len")"
- if [ $len -ge $MAXLEN ]; then
- # Datei auf oberste Ebene des Datenverzeichnisses kopieren
- basename=`basename $i`
- cp "$i" "$1$basename"
- # Entsprechende Anzahl Leerzeichen einfügen, um die Dateigröße der ZusiSim.exe nicht zu verändern
- let numspaces=${#rel}-${#basename}+1
- spaces=`seq -s "%LZ%" $numspaces | sed 's/[0-9]//g'`
- # Relativen Pfad in der ZusiSim.exe ersetzen
- sed -i -e "s/$rel_sed\"/$basename\"$spaces/g" ./ZusiSim.exe
- else
- echo "(keine Ersetzung notwendig)"
- fi
- done
- # Leerzeichen-Marker ersetzen
- sed -i -e "s/%LZ%/ /g" ./ZusiSim.exe
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement