home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- #
- # prep_use/not_use/what_use/remote_use LST Entpack-Utility
- # Version: 0.2
- # Last changed: 23.05.94
- #
- # Copyright (c) Ralf Flaxa, Linux Support Team Erlangen 1993, 1994
- #
- # Depending on the name under which you call it can unpack, remote-unpack,
- # delete and show the concerned group of files.
- #
- # This utility was build for the Golden Boot/Rootdisk and probably only
- # makes sense in that context ;-)
- #
- callname=`basename $0`
- ACTION="echo"
- REMOTESPACE=
- CANDELETE=
-
- NETFILES="/sbin/ifconfig /sbin/route /bin/netstat /bin/ping /sbin/ifsetup"
- SLIPFILES="/sbin/dip"
- NETLUXUS="/usr/bin/telnet /usr/bin/ftp /usr/sbin/inetd /sbin/arp"
- TAPEFILES="/sbin/tapetool /usr/bin/mt"
- FTAPEFILES="/boot/ftape/ftape.o /sbin/insmod /sbin/rmmod /sbin/lsmod /sbin/startftape"
- LILOFILES="/sbin/lilo /sbin/activate"
- KEYBDFILES="/usr/bin/loadkeys /usr/lib/kbd/keytables/gr-lat1"
- REPAIRFILES="/sbin/e2fsck"
- LUXUS="$NETLUXUS /usr/bin/tr /bin/ed $REPAIRFILES"
- BRAUCHBAR="/LSTLIB/FULLINDEX /LSTLIB/DATABASE"
- DOCLUXUS="/DOC/COPYING"
- # we also need /bin/date, but that is hardcoded in the profile ...
- NEEDED="/bin/tar /usr/bin/sed /usr/bin/fgrep /usr/bin/expr /usr/bin/filesize /usr/bin/wc /usr/bin/free"
- FORDIALOG=/bin/dialog
- NEEDED1="/sbin/doinstall"
- NEEDED2="/sbin/sysinstall"
- NEEDED3="/sbin/bootsetup"
- debug()
- {
- if [ "$DEBUG" != "" ]; then
- echo "$@"
- fi
- }
-
- checkramdisk()
- {
- if [ " `rdev` " != " /dev/ram / " ]; then
- echo "Sie benutzen keine Ramdisk !"
- echo "Auf der Diskette kann nichts gel÷scht werden"
- export CANDELETE=false
- # exit 1
- else
- export CANDELETE=true
- return 0
- fi
- }
-
- makeloop()
- {
- if [ $# -eq 0 ]; then
- return
- fi
- for j in $* ; do
- if [ "$ACTION" = "gzip -dc" ]; then
- debug "$j.gz in $REMOTESPACE$j ausgepackt "
- mkdir -p ` dirname $REMOTESPACE$j `
- if [ ! -f $REMOTESPACE$j ]; then
- cp -a $j.gz $REMOTESPACE$j.gz
- gzip -d $REMOTESPACE$j.gz
- fi
- if [ "$CANDELETE" = "true" ]; then
- rm $j.gz
- ln -fs $REMOTESPACE$j $j
- else
- echo "Warnung ! $j nicht removed und neu verlinkt "
- fi
- continue
- fi
- if [ "$ACTION" != "echo" -a "$CANDELETE" = "false" ]; then
- # besser nicht ...
- debug "Skipping $ACTION $j ..."
- continue
- fi
-
- if [ -f $j.gz ]; then
- # echo "$ACTION $j.gz"
- $ACTION $j.gz
- elif [ -f $j ]; then
- # echo "$ACTION $j"
- $ACTION $j
- else
- debug "Weder $j noch $j.gz gefunden ..."
- fi
- done
- }
-
- checkramdisk
-
- # parse loop
- #
- case $callname in
- what_use)
- ACTION='echo'
- ;;
- not_use)
- debug "L÷sche Pakete $@ aus der Ramdisk ... "
- ACTION='rm -f'
- ;;
- prep_use)
- debug "Dekomprimiere Pakete $@ in der Ramdisk ... "
- ACTION='gzip -d'
- ;;
- remote_use)
- ACTION='gzip -dc'
- export REMOTESPACE=$1
- shift 1
- ;;
- *)
- ACTION="unknown"
- return 1
- ;;
- esac
-
-
- while [ 1 ]; do
- if [ $# = 0 ]; then
- break
- elif [ "$1" = "net" ]; then
- makeloop "$NETFILES"
- shift 1
- elif [ "$1" = "slip" ]; then
- makeloop "$SLIPFILES"
- shift 1
- elif [ "$1" = "tape" ]; then
- makeloop "$TAPEFILES"
- shift 1
- elif [ "$1" = "ftape" ]; then
- makeloop "$FTAPEFILES"
- shift 1
- elif [ "$1" = "lilo" ]; then
- makeloop "$LILOFILES"
- shift 1
- elif [ "$1" = "keyboard" ]; then
- makeloop "$KEYBDFILES"
- shift 1
- elif [ "$1" = "minimum" ]; then
- makeloop "$NEEDED"
- shift 1
- elif [ "$1" = "phase1" ]; then
- makeloop "$NEEDED1"
- shift 1
- elif [ "$1" = "phase2" ]; then
- makeloop "$NEEDED2"
- shift 1
- elif [ "$1" = "phase3" ]; then
- makeloop "$NEEDED3"
- shift 1
- elif [ "$1" = "goodies" ]; then
- makeloop "$BRAUCHBAR"
- shift 1
- elif [ "$1" = "dialog" ]; then
- makeloop "$FORDIALOG"
- shift 1
- elif [ "$1" = "luxus" ]; then
- makeloop "$LUXUS"
- shift 1
- else
- makeloop "$@"
- shift 1
- fi
- done
-