home *** CD-ROM | disk | FTP | other *** search
- #! /bin/csh -f
-
- set path=(/bin /usr/bin /usr/ucb /usr/etc /etc)
- set TESTDIR
- set CLIENTDIR=${TESTDIR}/clients
- set template=${TESTDIR}/usr/template/client
- set HOSTFILE=${TESTDIR}/etc/hosts
- set BOOTPTAB=${TESTDIR}/etc/bootptab
-
- set server=`hostname`
-
- if ( `whoami` != root ) then
- echo "You must be root to run $0"
- exit(1)
- endif
-
- if ( $#argv < 1 ) then
- goto usage
- endif
-
- foreach arg ( $argv[2-] )
- if ( x$arg =~ x-* ) then
- goto usage
- endif
- end
-
- if ( $argv[1] == -p || $argv[1] == -P ) then
- if ( $#argv != 4 ) then
- goto usage
- endif
- set PrivateMode
- set disktype=$argv[2]
- set template=$argv[3]
- set dest=$argv[4]
- if ( $argv[1] == -P ) then
- set swapsize=1b
- else
- set swapsize=16m
- endif
-
- if ( ! -e $template/etc/fstab.$disktype ) then
- echo "Unknown disk type" $disktype
- exit(1)
- endif
- else if ( $argv[1] == -s ) then
- if ( $#argv < 3 ) then
- goto usage
- endif
- set server=$argv[2]
- shift
- shift
- else if ( $argv[1] =~ -* ) then
- goto usage
- endif
-
- if ( ! -d $template ) then
- echo "New client template $template does not exist"
- exit(1)
- endif
-
- if ( $?PrivateMode ) then
- if ( -e $dest ) then
- echo "$dest already exists"
- exit(1)
- endif
-
- echo -n "Creating ${dest}..."
- mkdir $dest
- chmod 775 $dest
- chown root.staff $dest
- if ( $status != 0 ) then
- echo "failed"
- exit(1)
- endif
- echo "[OK]"
-
- echo -n "Copying ${template} into ${dest}..."
- (cd $template; tar cf - .)|(cd $dest; tar xpBf -)
- echo "[OK]"
-
- echo -n "Making devices in ${dest}/dev..."
- (cd ${dest}/dev; /usr/etc/MAKEDEV NeXT)
- echo "[OK]"
-
- echo -n "Installing fstab.$disktype as ${dest}/etc/fstab..."
- cp -p $dest/etc/fstab.${disktype} $dest/etc/fstab
- if ( $status != 0 ) then
- echo "failed"
- exit(1)
- endif
- echo "[OK]"
-
- echo -n "Preallocating swapfile blocks..."
- (cd ${dest}/vm; /bin/rm -f swapfile; /usr/etc/mkfile $swapsize swapfile)
- echo "[OK]"
-
- exit(0)
- endif
-
-
- echo $argv[*]
- foreach client ( $argv[*] )
- if ( $server == localhost ) then
- echo "This machine can't be a server until it is given a hostname"
- exit(1)
- endif
- set dest=$CLIENTDIR/$client
-
- if (! -f /private/tftpboot/mach) then
- echo Installing /private/tftpboot/mach
- cp -p /mach /private/tftpboot/mach
- endif
- if (! -f /private/tftpboot/boot) then
- echo Installing /private/tftpboot/boot
- cp -p /usr/standalone/boot /private/tftpboot/boot
- endif
-
- if ( -e $dest ) then
- echo $dest already exists
- continue
- endif
-
- echo -n "Creating $dest..."
- mkdirs -m 775 -o root -g staff $dest
- if ( $status != 0 ) then
- echo "failed"
- exit(1)
- endif
- echo "[OK]"
-
- echo -n "Copying $template into ${dest}..."
- (cd $template; tar cf - .)|(cd $dest; tar xpBf -)
- echo "[OK]"
-
- echo -n "Making devices in ${dest}/dev..."
- (cd $dest/dev; /usr/etc/MAKEDEV NeXT)
- echo "[OK]"
-
- echo -n "Installing fstab.client as ${dest}/etc/fstab..."
- cp -p $dest/etc/fstab.client $dest/etc/fstab
- sed -e "s/SERVER/$server/g" -e "s/CLIENT/$client/g" $dest/etc/fstab.client > $dest/etc/fstab
- if ( $status != 0 ) then
- echo $failed
- exit(1)
- endif
- echo "[OK]"
-
-
- if (-f ${dest}/tftpboot/mach) then
- echo -n "Removing ${dest}/tftpboot/mach "
- rm ${dest}/tftpboot/mach
- echo "[OK]"
- endif
-
- echo -n "Linking /tftpboot/mach to /sdmach "
- ln -s /sdmach ${dest}/tftpboot/mach
- echo "[OK]"
-
- echo -n "Creating swapfile..."
- (cd ${dest}/vm; /bin/rm -f swapfile; /usr/etc/mkfile 8k swapfile)
- echo "[OK]"
-
- end
-
- exit(0)
-
- usage:
- echo "Usage: $0 -p DISKTYPE TEMPLATE DEST"
- echo " $0 [-s SERVER] CLIENT CLIENT ..."
- exit(1)
-
-
-