home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- REVON=""
- REVOFF=""
- CLEAR="c"
- BEEPTONE=''
- INSMOD=/sbin/insmod
- RMMOD=/sbin/rmmod
- LSMOD=/sbin/lsmod
- FTAPEMODUL=/boot/ftape/ftape.o
- TAPE=/dev/ftape
-
- panic()
- {
- echo
- echo "Unterbrechen ist keine gute Idee !"
- echo "Das kann einen inkonsistenten Zustand bewirken !"
- echo "Spule Tape zurueck und deinstalliere modul ftape.o ..."
- echo "Bitte warten ..."
- echo
- mt -f $TAPE rewind
- $RMMOD ftape > /dev/null 2>&1
- echo "ok !"
- echo
- exit
- }
-
- banner()
- {
- echo
- echo "==================================================="
- echo -n $REVON
- echo -n " QIC-80 Floppy-Streamer Utility "
- echo $REVOFF
- echo "==================================================="
- echo
- }
-
- # Binaries und Treiber suchen und evtl. auspacken
- unpackftape()
- {
- for i in $FTAPE $INSMOD $RMMOD $LSMOD ; do
- if [ ! -f $i ]; then
- if [ -f $i.gz ]; then
- echo "Entpacke $i.gz ..."
- gzip -d $i.gz
- else
- echo "Panic! Weder $i noch $i.gz gefunden ! "
- exit
- fi
- fi
- done
- }
-
- initftape()
- {
- $RMMOD ftape 2> /dev/null 1>/dev/null
- echo
- echo -n $REVON
- echo "Legen Sie ein Band ein."
- echo $REVOFF
- echo "Warten Sie, bis der Streamer aufgeh÷rt hat zu spulen"
- echo
- echo -n "Drⁿcken Sie dann die Eingabetaste"
- read ans
- echo
- echo "Installiere Floppy-Streamer Treibermodul ftape.o ..."
- $INSMOD $FTAPEMODUL > /dev/null 2>&1
- echo "Spule Streamer zurⁿck ..."
- mt -f /dev/ftape rewind
- echo "Der Streamer sollte nun initialisiert sein ... "
- }
-
- getfilelist()
- {
- FILENAME=
- FILELIST=
- while [ 1 ]; do
- echo
- echo "Eingabe der gewⁿnschten Dateien:"
- echo "--------------------------------"
- echo
- echo "Geben Sie pro Zeile einen Dateinamen oder ein Verzeichnis (Endung \"/\") an."
- echo "Beenden Sie Ihre Eingabe mit einer leeren Zeile."
- if [ "$action" = "2" ]; then
- echo "es sind leider noch keine Joker erlaubt ;-)"
- elif [ "$action" = "3" ]; then
- echo "Wenn Sie keine Dateinamen/Verzeichnisse angeben, wird der gesamte Bandinhalt"
- echo "restauriert."
- echo "Wenn Sie \"#\" angeben, werden Sie nach dem Dateinamen einer Extractliste"
- echo "gefragt."
- fi
- read FILENAME
- if [ "$FILENAME" = "" ]; then
- break
- elif [ "$FILENAME" = "#" ]; then
- FILENAME=
- while [ 1 ]; do
- echo
- echo "Bitte geben Sie den Namen der Datei an, die die Extractliste enthΣlt oder"
- echo "nur die Eingabetaste, falls Sie doch keine Extractliste verwenden wollen."
- echo -n "EXTRACTLIST: "
- read ans
- if [ "$ans" = "" ]; then
- echo
- echo "keine Extractliste gewΣhlt !"
- FILELIST=
- break
- elif [ ! -f $ans ]; then
- echo
- echo "Extractliste nicht gefunden !"
- continue
- else
- export EXTRACTLIST=$ans
- FILELIST=`cat $EXTRACTLIST`
- break
- fi
- done
- FILELIST="$FILELIST $FILENAME"
- fi
- done
- echo "Selektierte Dateien:"
- if [ "$FILELIST" = "" ]; then
- echo "Alle Dateien"
- else
- echo $FILELIST
- fi
- }
-
-
- #
- # Main
- #
-
- # trap panic 1 2 5 9 15
-
- echo $CLEAR
- unpackftape
- initftape
-
- #
- # parse options
- #
- while [ 1 ]; do
- if [ $# = 0 ]; then
- break
- elif [ $# -gt 0 -a "$1" = "-expert" ]; then
- EXPERT=true
- shift 1
- continue;
- elif [ $# -gt 1 -a "$1" = "-tape" ]; then
- TAPE=$2
- shift 2
- continue;
- elif [ $# -gt 0 -a "$1" = "-init" ]; then
- # alles noetige fuer init getan
- return
- elif [ $# -gt 0 -a "$1" = "-list" ]; then
- tar tvf $TAPE
- return
- fi
- done
-
- if [ "$TAPE" = "/dev/ftape" -a "$EXPERT" = "true" ]; then
- mt -f $TAPE fsr 7
- else
- mt -f $TAPE fsr 0
- fi
-
- while [ 1 ]; do
- banner
- echo " 1 - Inhalt vom Band anzeigen"
- echo " 2 - Daten auf Band sichern"
- echo " 3 - Daten vom Band restaurieren"
- echo " 4 - Banddaten vergleichen"
- echo " 5 - Band zurⁿckspulen"
- echo " 6 - Band l÷schen"
- if [ "$TAPE" = "/dev/ftape" ]; then
- echo " 7 - Streamer initialisieren"
- echo " 8 - Debugging Meldungen ein-/ausschalten"
- fi
- echo
- echo " 0 - Streamer Utility verlassen"
- echo
- if [ "$TAPE" = "/dev/ftape" ]; then
- echo -n "WΣhlen Sie (1/2/3/4/5/6/7/8/0) : "
- else
- echo -n "WΣhlen Sie (1/2/3/4/5/6/7/0) : "
- fi
- read action
- case $action in
- 0)
- exit 0;;
- 1)
- echo $CLEAR
- banner
- echo "Inhalt vom Band :"
- echo "-----------------"
- tar tvf $TAPE;;
- 2)
- getfilelist
- tar cvf $TAPE `echo $FILELIST`;;
- 3)
- getfilelist
- tar xvf $TAPE `echo $FILELIST`;;
- 4)
- tar dvf $TAPE;;
- 5)
- mt -f $TAPE rewind;;
- 6)
- echo -n "Sind Sie sicher, da▀ Sie das Band l÷schen wollen ? (j/n) : "
- read ans
- if [ "$ans" = "j" ]; then
- mt -f $TAPE erase
- fi;;
- 7)
- initftape;;
- 8)
- while [ 1 ]; do
- echo
- echo "Geben Sie den Debuglevel an (0=aus, 7=max)"
- echo -n "Debuglevel : "
- read level
- if [ $level -gt 7 -o 0 -gt $level ]; then
- echo "ungⁿltiger Debuglevel !"
- continue
- else
- mt -f $TAPE fsr $level
- break
- fi
- done;;
- *)
- echo "ungⁿltige Angabe !";;
- esac
- done
-
-