# Install the /usr file system
disk=6				# starting disk (1-3 are boot diskettes)
STOP=18				# first disk that does not exist

i=/usr/include
s=/usr/src
l=/usr/src/lib

# Unmount all hard disk partitions and see if the argument can be mounted.
case $# in
1)	;;
*)	echo Please specify the special file for the MINIX partition
	echo For example:   /etc/setup_usr /dev/hd1
	exit 1
	;;
esac

cd /
/etc/umount /dev/hd1 >/dev/null 2>&1
/etc/umount /dev/hd2 >/dev/null 2>&1
/etc/umount /dev/hd3 >/dev/null 2>&1
/etc/umount /dev/hd4 >/dev/null 2>&1
if /etc/mount $1 /user >/dev/null 2>&1
   then :
   else echo Unable to mount $1
	exit 1
fi

PATH=$PATH:/user/bin		# hard disk will be mounted on /user

# Make the principal MINIX directories.
echo Making directories
mkdir /user/adm 2>/dev/null
mkdir /user/ast 2>/dev/null
mkdir /user/bin  2>/dev/null
mkdir /user/doc 2>/dev/null
mkdir /user/etc 2>/dev/null
mkdir /user/include 2>/dev/null
mkdir /user/include/minix 2>/dev/null
mkdir /user/include/sys 2>/dev/null
mkdir /user/lib 2>/dev/null
mkdir /user/lib/tmac 2>/dev/null
mkdir /user/man 2>/dev/null
mkdir /user/spool 2>/dev/null
mkdir /user/spool/at 2>/dev/null
mkdir /user/spool/lpd 2>/dev/null
mkdir /user/spool/mail 2>/dev/null
mkdir /user/spool/uucp 2>/dev/null
mkdir /user/src 2>/dev/null
mkdir /user/src/amoeba 2>/dev/null
mkdir /user/src/amoeba/examples  2>/dev/null
mkdir /user/src/amoeba/kernel 2>/dev/null
mkdir /user/src/amoeba/fs 2>/dev/null
mkdir /user/src/amoeba/mm 2>/dev/null
mkdir /user/src/amoeba/util 2>/dev/null
mkdir /user/src/commands 2>/dev/null
mkdir /user/src/commands/bin 2>/dev/null
mkdir /user/src/commands/ibm 2>/dev/null
mkdir /user/src/commands/bawk 2>/dev/null
mkdir /user/src/commands/de 2>/dev/null
mkdir /user/src/commands/dis88 2>/dev/null
mkdir /user/src/commands/ic 2>/dev/null
mkdir /user/src/commands/indent 2>/dev/null
mkdir /user/src/commands/kermit 2>/dev/null
mkdir /user/src/commands/m4 2>/dev/null
mkdir /user/src/commands/make 2>/dev/null
mkdir /user/src/commands/mined 2>/dev/null
mkdir /user/src/commands/nroff 2>/dev/null
mkdir /user/src/commands/patch 2>/dev/null
mkdir /user/src/commands/sh 2>/dev/null
mkdir /user/src/commands/zmodem 2>/dev/null
mkdir /user/src/elle 2>/dev/null
mkdir /user/src/fs 2>/dev/null
mkdir /user/src/lib 2>/dev/null
mkdir /user/src/lib/ansi 2>/dev/null
mkdir /user/src/lib/ibm 2>/dev/null
mkdir /user/src/lib/other 2>/dev/null
mkdir /user/src/lib/posix 2>/dev/null
mkdir /user/src/lib/string 2>/dev/null
mkdir /user/src/kernel 2>/dev/null
mkdir /user/src/mm 2>/dev/null
mkdir /user/src/test 2>/dev/null
mkdir /user/src/tools 2>/dev/null
mkdir /user/tmp 2>/dev/null

# At this point, the root file system is in place and diskette #5 is in
# drive 0 mounted on /usr.  The MINIX hard disk partition is on /user.
# Copy /bin and /etc to the hard disk.
echo Copying /bin
cpdir -m /bin /user/bin		# copy /bin to the hard disk
echo Copying /etc
cpdir -m /etc /user/etc		# copy /etc to the hard disk
cpdir -m /usr/bin /user/bin	# copy /usr/bin to the hard disk
echo Copying diskette 5
fixbin /user/bin /user/bin >/dev/null 2>&1
echo Diskette 5 copied
/etc/umount /dev/fd0


while test $disk != $STOP
do getlf "Please insert disk $disk, then hit the ENTER key"
   /etc/mount /dev/fd0 /usr -r
   cd /usr
   for dir in *
   do   echo Copying $dir
	if test $dir = 'LAST_DISK'; then disk=`expr $STOP - 1`; fi

	# Establish base name
	case $dir in
		include)	base=/user/include ;;
		ast)		base=/user/ast ;;
		bin)		base=/user/bin ;;
		etc)		base=/user/etc ;;
		usrlib)		base=/user/lib ;;
		kernel)		base=/user/src/kernel ;;
		fs)		base=/user/src/fs ;;
		mm)		base=/user/src/mm ;;
		tools)		base=/user/src/tools ;;
		test)		base=/user/src/test ;;
		elle)		base=/user/src/elle ;;
		amoeba)		base=/user/src/amoeba ;;
		lib)		base=/user/src/lib ;;
		commands)	base=/user/src/commands ;;
		LAST_DISK)	base=/tmp ;;
		*)		base=/user/$dir ;;
	esac

	cd /			# cpdir creates pipes in current dir
	cpdir -m /usr/$dir $base
   done
   disk=`expr $disk + 1`
   cd /
   /etc/umount /dev/fd0
done

#All the disks have now been loaded.  Unpack them.
echo Loading finished.  Please remove the last diskette from the drive.
echo The files will now be unpacked.
cd /
fixbin /user/bin /user/bin >/dev/null 2>&1
/etc/umount $1 >/dev/null 2>&1
/etc/mount $1 /usr >/dev/null 2>&1

echo Unpacking /usr/lib
cd /usr/lib
compress -d *Z >/dev/null 2>&1
rm -f *Z 2>/dev/null
chown bin *

for d in $i			\
	$i/minix		\
	$i/sys			\
	$s/elle			\
	$s/kernel 		\
	$s/fs 			\
	$s/mm			\
	$s/tools		\
	$s/test			\
	$l/ansi			\
	$l/posix		\
	$l/other		\
	$l/ibm			\
	$l/string		\
	$s/commands		\
	$s/commands/ibm		\
	$s/commands/bawk	\
	$s/commands/de		\
	$s/commands/dis88	\
	$s/commands/indent	\
	$s/commands/ic		\
	$s/commands/m4		\
	$s/commands/make	\
	$s/commands/mined	\
	$s/commands/nroff	\
	$s/commands/patch	\
	$s/commands/sh		\
	$s/commands/zmodem	\
	$s/commands/kermit	\
	$s/commands/elvis	\
	$s/amoeba		\
	$s/amoeba/kernel	\
	$s/amoeba/fs		\
	$s/amoeba/mm		\
	$s/amoeba/examples	\
	$s/amoeba/util
do echo Unpacking $d
   cd $d
   compress -d *Z >/dev/null 2>&1
   rm -f *.Z 2>/dev/null
   for j in *.a; do ar x $j >/dev/null 2>&1; done
   rm -f *.a 2>/dev/null
   chown bin * .
done

# link commands/nroff/tmac.an to lib/tmac/tmac.an
ln /usr/src/commands/nroff/tmac.an /usr/lib/tmac/tmac.an

rm -rf /usr/LAST_DISK 2>/dev/null
chown bin /usr/*

cd /usr/lib
chmod 755 cem cpp cg opt

echo Installation completed.
exit 0
