Minix1.5/commands/fixbin.sh

#This shell script installs new binaries, changing sizes and modes
#Call: fixbin src_dir dst_dir
#Example: fixbin /usr/src/commands/bin /bin

#Check for args
case $# in
2) ;;
*) echo Usage: $0 src_dir dst_dir
   exit 1
   ;;
esac

src=$1
dst=$2
if test -d $src; then : ; else echo $src is not a directory; exit 1; fi
if test -d $dst; then : ; else echo $dst is not a directory; exit 1; fi

#Is dst dir writable?
date >$dst/$$
if test -r $dst/$$
   then :
   else echo $0: $dst is not writable
        exit 1
fi

#Is this script running as superuser?
if chown bin $dst/$$ >/dev/null 2>&1
   then rm $dst/$$
   else echo You must be superuser to run $0
	rm $dst/$$
	exit 1
fi
	
#Copy all the files into position if needed
if test $src = $dst
   then :			# e.g., $0 /bin /bin
   else cd $src
	cp * $dst
fi
	
#Set owner
cd $dst
chown bin *

#The following files are setuid root
chown root $dst/at
chown root $dst/df
chown root $dst/login
chown root $dst/mv
chown root $dst/passwd
chown root $dst/recover
chown root $dst/su

chmod 4755 $dst/at
chmod 4755 $dst/df
chmod 4755 $dst/login
chmod 4755 $dst/mv
chmod 4755 $dst/passwd
chmod 4755 $dst/recover
chmod 4755 $dst/su

#Increase default stack size from 8K to more for selected programs
chmem =50000 $dst/ar
chmem =10000 $dst/cgrep
chmem =16000 $dst/cp
chmem =55000 $dst/cdiff
chmem =64000 $dst/compress
chmem =64000 $dst/cpdir
chmem =64000 $dst/cron
chmem =30000 $dst/de
chmem =40000 $dst/dd
chmem =32000 $dst/du
chmem =55000 $dst/diff
chmem =60000 $dst/ed
chmem =50000 $dst/file
chmem =50000 $dst/find
chmem =60000 $dst/fix
chmem =60000 $dst/fsck
chmem =60000 $dst/indent
chmem =10000 $dst/last
chmem =20000 $dst/make
chmem =10000 $dst/man
chmem =64000 $dst/mined
chmem =40000 $dst/mkfs
chmem =40000 $dst/mkproto
chmem =15000 $dst/mref
chmem =16000 $dst/nm
chmem =65000 $dst/nroff
chmem =20000 $dst/patch
chmem =32000 $dst/pr
chmem =60000 $dst/ps
chmem =50000 $dst/readfs
chmem =16000 $dst/roff
chmem =60000 $dst/sed
chmem =20000 $dst/sh
chmem =60000 $dst/sort
chmem =16000 $dst/strip
chmem =16000 $dst/strings
chmem =60000 $dst/tar
chmem =60000 $dst/treecmp

# remove old linked files and make new ones
rm -rf chip uncompress zcat ex vi
ln machine chip
ln compress uncompress
ln compress zcat
ln elvis ex
ln elvis vi

if chip INTEL
then
   chown root $dst/readclock
   chmod 4755 $dst/readclock

   chmem =16000 $dst/ast
   chmem =60000 $dst/asld
   chmem =32000 $dst/dosread
   chmem =64000 $dst/libpack
   chmem =64000 $dst/libupack
   chmem =60000 $dst/lorder
   chmem =60000 $dst/tsort

   rm -rf doswrite dosdir
   ln dosread doswrite
   ln dosread dosdir
fi

if chip M68000
then
   chmem =20000 $dst/anm
   chmem =20000 $dst/cc
#  chmem =20000 $dst/cv usr/lib !!!
   chmem =25000 $dst/tos

   rm -rf tosdir tosread toswrite 
   ln tos tosdir
   ln tos tosread
   ln tos toswrite
fi