#!/bin/sh

yes () { \
    while [ 0 ];do \
	echo -n "Yes (y) or no (n): "; \
	read answer; \
	if [ -z $answer ];then answer="x";fi; \
	if [ $answer = "y" -o $answer = "Y" -o $answer = "yes" ]; \
	then return 0; \
	else if [ $answer = "n" -o $answer = "N" -o $answer = "no" ]; \
	then return 1;fi;fi; \
    done }

fixdirs () { \
    owner=$1;group=$2;perms=$3;shift 3; \
    for i in $*;do \
	if [ ! -d ${i} ];then /mnt/bin/rm -rf ${i};/mnt/bin/mkdir ${i};fi; \
	/mnt/bin/chown ${owner} ${i}; \
	/mnt/bin/chgrp ${group} ${i}; \
	/mnt/bin/chmod ${perms} ${i}; \
    done }

makeold () { \
    for i in $*;do \
	if [ -f ${i} ]; \
	then /mnt/bin/mv ${i} ${i}.old; \
	else /mnt/bin/rm -rf ${i}; \
	fi; \
    done }

/mnt/bin/cat <<EOT1

Before you run this script, you should:
   Use fdisk to create a partition to contain the root file system.
   Use mkfs to set up a file system on that partition.
   Mount that partition on /root.
(Remember that mkfs and mount will not work correctly unless
you reboot after using fdisk to change the partition table.)

If you are updating an existing Linux, mount the root partition
of the file system on /root.
If you have other partitions, you should mount them on
subdirectories of /root; e.g., /root/usr or /root/home.

If you have created a swap partition and rebooted, and if you have
initialised the swap partition with mkswap, you may use the
swapon command to enable swapping.
Do you wish to install Linux now?  Type 'no' to stop.
EOT1
if ! yes;then exit 1;fi

/mnt/bin/cat <<EOT3

This is your last chance to stop before installing Linux.
If you continue, you will lose many files currently in the
following directories under the /root directory:
     bin   dev   etc   home   mnt   tmp   usr
Do you want to continue installing?  Type 'no' to stop.
EOT3
if ! yes;then exit 1;fi

cd /root
/mnt/bin/rm -f lib/lib*.so.2 lib/lib*.so.2.2
echo "I'm working.  Please be patient."
fixdirs bin bin 555 /root bin dev etc etc/lilo home lib mnt usr usr/bin usr/include \
	usr/lib usr/man usr/man/man1 usr/man/man2 usr/man/man3 usr/man/man4 \
	usr/man/man5 usr/man/man6 usr/man/man7 usr/man/man8 usr/man/man9
fixdirs bin daemon 575 usr/man/cat1 usr/man/cat2 usr/man/cat3 usr/man/cat4 \
	usr/man/cat5 usr/man/cat6 usr/man/cat7 usr/man/cat8 usr/man/cat9

/mnt/bin/cat <<EOT3a

Do you have a 486 or a maths coprocessor?  Answer 'no' if your
machine is unable to execute floating point instructions.
EOT3a
if yes;then /usr/bin/tar xvzfp /mnt/tar.Z.files/hard.tar.Z; \
else /usr/bin/tar xvzfp /mnt/tar.Z.files/soft.tar.Z; \
fi

fixdirs bin bin 1777 tmp
fixdirs bin bin 111 mnt
fixdirs root bin 751 root
fixdirs user other 711 home/user
/mnt/bin/sync
echo "I'm working.  Please be patient."
(cd etc;makeold fdprm fstab group inittab issue magic motd mtools passwd \
	profile rc securetty shells lilo/disktab lilo/install)
for i in root home/user;do (cd $i;makeold .bashrc .kermrc .mcwd .profile);done
/mnt/bin/rm -rf lib/libc2.2.2 lib/libm2.2.2
(cd /etc;/usr/bin/tar cf - group passwd termcap update)|(cd /root/etc;/usr/bin/tar xvfp -)
(cd /lib;/usr/bin/tar cf - *)|(cd /root/lib;/usr/bin/tar xvfp -)
(cd /root/dev;/mnt/bin/rm -rf `(cd /dev;/mnt/bin/ls)`)
(cd /dev;/usr/bin/tar cf - *)|(cd /root/dev;/usr/bin/tar xvfp -)
/mnt/bin/sync
(cd /bin;/usr/bin/tar cf - bash doshell mount sh umount)|(cd /root/bin;/usr/bin/tar xvfp -)
(cd /mnt/bin;/usr/bin/tar cf - *)|(cd /root/bin;/usr/bin/tar xvfp -)
/root/bin/rm -f /root/bin/install_root
(cd /usr/bin;/usr/bin/tar cf - *)|(cd /root/usr/bin;/usr/bin/tar xvfp -)
/root/bin/sync
for i in bin etc man texts usr
  do /root/usr/bin/tar xvzfp /mnt/tar.Z.files/$i.tar.Z;sync
done
echo "I'm working.  Please be patient."
(cd /root/usr/man; \
	/root/bin/ls cat*/*[^Z]|/root/usr/bin/sed -e 's/$/.Z/'|/root/usr/bin/xargs \
	/root/bin/rm -f *1/mtools.1*; compress cat*/*[^Z];/root/bin/chown bin cat*/*; \
	/root/bin/chgrp daemon cat*/*;/root/bin/chmod 664 cat*/*; \
	/root/bin/ln -f cat8/mount.8.Z cat8/umount.8.Z; \
	cd cat1;/root/bin/ln -f [.1.Z test.1.Z;/root/bin/ln -f sh.1.Z bash.1.Z; \
	/root/bin/ln -f zcat.1.Z compress.1.Z;/root/bin/ln -f zcat.1.Z uncompress.1.Z; \
	/root/bin/ln -f decode.1.Z encode.1.Z;/root/bin/ln -f ls.1.Z dir.1.Z; \
	/root/bin/ln -f ls.1.Z vdir.1.Z;/root/bin/ln -f ls.1.Z ll.1.Z; \
	/root/bin/ln -f ls.1.Z lsf.1.Z;/root/bin/ln -f grep.1.Z egrep.1.Z; \
	/root/bin/ln -f vi.1.Z ex.1.Z; /root/bin/ln -f vi.1.Z elvis.1.Z; \
	/root/bin/ln -f virec.1.Z elvrec.1.Z)
sync
/root/bin/rm -rf /tmp
/root/bin/ln -s /root/tmp /tmp
sync

/root/bin/cat <<EOT4


Linux has now been installed.  Please type

     umount /mnt
     hash -r

immediately, and then remove the utilities disk.

You can now set up a boot disk for your new hard disk root partition.
Put a formatted high density floppy in drive 0 (A), and:

     cd /root/etc
     rdev Image /dev/hda3
          replacing   ^   with your root device
     cp Image /dev/fd0
     sync

Then you can reboot from the floppy.  BEFORE YOU REBOOT, please edit
your configurable files: /etc/fstab must be correct before rebooting.
The editors joe and vi should now work.
EOT4