home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2 / Openstep-4.2-Intel-User.iso / usr / etc / newclient < prev    next >
Text File  |  1997-03-28  |  3KB  |  173 lines

  1. #! /bin/csh -f
  2.  
  3. set path=(/bin /usr/bin /usr/ucb /usr/etc /etc)
  4. set TESTDIR
  5. set CLIENTDIR=${TESTDIR}/clients
  6. set template=${TESTDIR}/usr/template/client
  7. set HOSTFILE=${TESTDIR}/etc/hosts
  8. set BOOTPTAB=${TESTDIR}/etc/bootptab
  9.  
  10. set server=`hostname`
  11.  
  12. if ( `whoami` != root ) then
  13.     echo "You must be root to run $0"
  14.     exit(1)
  15. endif
  16.  
  17. if ( $#argv < 1 ) then
  18.     goto usage
  19. endif
  20.  
  21. foreach arg ( $argv[2-] )
  22.     if ( x$arg =~ x-* ) then
  23.         goto usage
  24.     endif
  25. end
  26.  
  27. if ( $argv[1] == -p || $argv[1] == -P ) then
  28.     if ( $#argv != 4 ) then
  29.         goto usage
  30.     endif
  31.     set PrivateMode
  32.     set disktype=$argv[2]
  33.     set template=$argv[3]
  34.     set dest=$argv[4]
  35.     if ( $argv[1] == -P ) then
  36.         set swapsize=1b
  37.     else
  38.         set swapsize=16m
  39.     endif
  40.  
  41.     if ( ! -e $template/etc/fstab.$disktype ) then
  42.         echo "Unknown disk type" $disktype
  43.         exit(1)
  44.     endif
  45. else if ( $argv[1] == -s ) then
  46.     if ( $#argv < 3 ) then
  47.         goto usage
  48.     endif
  49.     set server=$argv[2]
  50.     shift
  51.     shift
  52. else if ( $argv[1] =~ -* ) then
  53.     goto usage
  54. endif
  55.  
  56. if ( ! -d $template ) then
  57.     echo "New client template $template does not exist"
  58.     exit(1)
  59. endif
  60.  
  61. if ( $?PrivateMode ) then
  62.     if ( -e $dest ) then
  63.         echo "$dest already exists"
  64.         exit(1)
  65.     endif
  66.  
  67.     echo -n "Creating ${dest}..."
  68.     mkdir $dest
  69.     chmod 775 $dest
  70.     chown root.staff $dest
  71.     if ( $status != 0 ) then
  72.         echo "failed"
  73.         exit(1)
  74.     endif
  75.     echo "[OK]"
  76.  
  77.     echo -n "Copying ${template} into ${dest}..."
  78.     (cd $template; tar cf - .)|(cd $dest; tar xpBf -)
  79.     echo "[OK]"
  80.  
  81.     echo -n "Making devices in ${dest}/dev..."
  82.     (cd ${dest}/dev; /usr/etc/MAKEDEV NeXT)
  83.     echo "[OK]"
  84.  
  85.     echo -n "Installing fstab.$disktype as ${dest}/etc/fstab..."
  86.     cp -p $dest/etc/fstab.${disktype} $dest/etc/fstab
  87.     if ( $status != 0 ) then
  88.         echo "failed"
  89.         exit(1)
  90.     endif
  91.     echo "[OK]"
  92.  
  93.     echo -n "Preallocating swapfile blocks..."
  94.     (cd ${dest}/vm; /bin/rm -f swapfile; /usr/etc/mkfile $swapsize swapfile)
  95.     echo "[OK]"
  96.  
  97.     exit(0)
  98. endif
  99.  
  100.  
  101. echo $argv[*]
  102. foreach client ( $argv[*] )
  103.     if ( $server == localhost ) then
  104.         echo "This machine can't be a server until it is given a hostname"
  105.         exit(1)
  106.     endif
  107.     set dest=$CLIENTDIR/$client
  108.  
  109.     if (! -f /private/tftpboot/mach) then
  110.         echo Installing /private/tftpboot/mach
  111.         cp -p /mach /private/tftpboot/mach
  112.     endif
  113.     if (! -f /private/tftpboot/boot) then
  114.         echo Installing /private/tftpboot/boot
  115.         cp -p /usr/standalone/boot /private/tftpboot/boot
  116.     endif
  117.  
  118.     if ( -e $dest ) then
  119.         echo $dest already exists
  120.         continue
  121.     endif
  122.  
  123.     echo -n "Creating $dest..."
  124.     mkdirs -m 775 -o root -g staff $dest
  125.     if ( $status != 0 ) then
  126.         echo "failed"
  127.         exit(1)
  128.     endif
  129.     echo "[OK]"
  130.  
  131.     echo -n "Copying $template into ${dest}..."
  132.     (cd $template; tar cf - .)|(cd $dest; tar xpBf -)
  133.     echo "[OK]"
  134.  
  135.     echo -n "Making devices in ${dest}/dev..."
  136.     (cd $dest/dev; /usr/etc/MAKEDEV NeXT)
  137.     echo "[OK]"
  138.  
  139.     echo -n "Installing fstab.client as ${dest}/etc/fstab..."
  140.     cp -p $dest/etc/fstab.client $dest/etc/fstab
  141.     sed -e "s/SERVER/$server/g" -e "s/CLIENT/$client/g" $dest/etc/fstab.client > $dest/etc/fstab
  142.     if ( $status != 0 ) then
  143.         echo $failed
  144.         exit(1)
  145.     endif
  146.     echo "[OK]"
  147.  
  148.     
  149.     if (-f ${dest}/tftpboot/mach) then
  150.         echo -n "Removing ${dest}/tftpboot/mach "
  151.         rm ${dest}/tftpboot/mach
  152.         echo "[OK]"
  153.     endif
  154.         
  155.     echo -n "Linking /tftpboot/mach to /sdmach "
  156.     ln -s /sdmach ${dest}/tftpboot/mach
  157.     echo "[OK]"
  158.  
  159.     echo -n "Creating swapfile..."
  160.     (cd ${dest}/vm; /bin/rm -f swapfile; /usr/etc/mkfile 8k swapfile)
  161.     echo "[OK]"
  162.  
  163. end
  164.  
  165. exit(0)
  166.  
  167. usage:
  168.     echo "Usage: $0 -p DISKTYPE TEMPLATE DEST"
  169.     echo "       $0 [-s SERVER] CLIENT CLIENT ..."
  170.     exit(1)
  171.  
  172.  
  173.