#!/bin/sh -

(
echo '
CatRescue init (V1.01E * Oleg Kibirev * oleg@gd.cs.CSUFresno.EDU) running...
' > /dev/console
)

respawn()
{
  while :; do
    (
	(stty sane <$1)
	exec setsid sh -c "exec -sh <$1 >$1 2>$1"
    )
  done &
}

umask 022
PATH="/usr/local/bin:/usr/sbin:/bin:/sbin:/tools/bin:/tools/sbin:/rootfs/usr/local/bin:/rootfs/usr/bin:/rootfs/bin:/rootfs/usr/sbin:/rootfs/sbin:/rootfs/usr/games:/rootfs/usr/local/sbin"
LD_LIBRARY_PATH="/usr/local/lib:/usr/lib:/lib:/tools/lib:/rootfs/usr/i486-linuxaout/lib:/rootfs/usr/local/lib:/rootfs/usr/lib:/rootfs/lib"
IFS='	
'
TERM=console
USER=root
SHELL=/bin/sh
HOME=/root
LOGNAME=root
HOSTNAME=catrescue

export PATH LD_LIBRARY_PATH TERM USER IFS SHELL HOME LOGNAME HOSTNAME

: > /vmlinuz
gunzip /sbin/*.gz /usr/local/bin/*.gz 
rm -rf /vmlinuz /boot/map
for i in *.tgz; do zcat $i | tar --preserve -xf -; rm $i; done

update

ctrlaltdel soft
hostname catrescue
ifconfig lo 127.0.0.1
route add -net 127.0.0.0

mount -f /
mount -av

echo -n 'Use multiple virtual terminals? '
read ans
exec </dev/null >/dev/null 2>/dev/null
 
if [ "$ans" = n -o "$ans" = N ]; then
(stty sane < /dev/tty1)
(echo 'Type "multvt" to use multiple virtual terminals later.' >/dev/tty1)
exec setsid sh -c "exec -sh </dev/tty1 >/dev/tty1 2>/dev/tty1"
else
respawn /dev/tty1
respawn /dev/tty2
respawn /dev/tty3
respawn /dev/tty4
respawn /dev/tty5
respawn /dev/tty6
fi


trap "tail -f /etc/passwd >/dev/null" 2 
while :; do wait; done
