home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / nwsrvr / install / postremove < prev    next >
Text File  |  1998-08-19  |  4KB  |  196 lines

  1. # @(#)postremove    1.3
  2. # nws postremove
  3.  
  4. #
  5. trap "" 2
  6.  
  7. ADMINUSER=/usr/bin/adminuser
  8. GREP=/usr/bin/grep
  9.  
  10. if [ "$RANDOM" = "$RANDOM" ]
  11. then
  12.     exec /usr/bin/winxksh $0 $*
  13. fi
  14.  
  15. # Redirect stderr to a file
  16. ERR="/tmp/nwsrvr.premove.err"
  17. exec 2>$ERR
  18.  
  19.  
  20. # Load strings
  21. . ${LANGDEP_SCRIPTS}/set_strings
  22.  
  23. function ProtocolStackCleanup
  24. {
  25. [ -n "$DEBUG" ] && set -x
  26.  
  27.     #
  28.     #    Remove drivers
  29.     #
  30.     cd /etc/conf
  31.  
  32.     for i in nwetc ncpipx nemux sfd
  33.     do
  34.         # unload modules
  35.         modadmin -U $i >/dev/null 2>&1
  36.         /etc/conf/bin/idinstall -d $i
  37.  
  38.         # remove modules from the system
  39.         /etc/conf/bin/idinstall -d -P nws $i    
  40.     done
  41.  
  42. }
  43.  
  44. function NWSCleanup
  45. {
  46. [ -n "$DEBUG" ] && set -x
  47.  
  48.     typeset -u YN_UPPER
  49.     TRASH_VOLS="FALSE"
  50.     # ask "Do you want to remove all volumes and user created files and dirs?"
  51.     echo -n $REMOVE_ALL_VOLS
  52.     read 
  53.     YN_UPPER=$REPLY
  54.     if [ "$YN_UPPER" = $Y -o "$YN_UPPER" = $YES ]
  55.     then
  56.         echo -n $ARE_YOU_SURE
  57.         read
  58.         YN_UPPER=$REPLY
  59.         if [ "$YN_UPPER" = $Y -o "$YN_UPPER" = $YES ]
  60.         then
  61.             TRASH_VOLS="TRUE"
  62.         fi
  63.     fi
  64.  
  65. print -u2 TRASH_VOLS[$TRASH_VOLS]
  66.  
  67.     SYSVOL=""
  68.     
  69.     #    Remove volume control directories
  70.     exec 3< /etc/netware/voltab
  71.     while read -u3
  72.     do
  73.         # Skip blank lines
  74.         if (( "${#REPLY}" == 0 ))
  75.         then
  76.             continue
  77.         fi
  78.  
  79.         set $REPLY        # put into postional parameter form
  80.  
  81.         # skip comment lines
  82.         tmp=`echo "$1" | cut -c1`
  83.         if [ "$tmp" = "#" ]
  84.         then
  85.             continue
  86.         fi
  87.  
  88.         # skip syntax errors (rudimentary test)
  89.         if (( "$#" != 7 ))
  90.         then
  91.             continue
  92.         fi
  93.  
  94. print -u2 4[$4]
  95. print -u2 5[$5]
  96.         # trash all volumes if user specified "yes" above
  97.         if [ "$TRASH_VOLS" = "TRUE" ]
  98.         then
  99.             if [ "$4" != "/" -a "$5" != "/" ]
  100.             then
  101.                 /sbin/rm -rf $4
  102.                 /sbin/rm -rf $5
  103.             fi
  104.         fi
  105.  
  106.         if [ "$2" = "SYS" ]
  107.         then
  108.             SYSVOL="$4"
  109.             CONTROL="$5"
  110.  
  111.             # Remove Directory Services database
  112.             /sbin/rm -rf $SYSVOL/_netware
  113.         fi
  114.  
  115.  
  116.     done
  117.     # close file
  118.     exec 3<&-
  119.  
  120.     # remove license directory and all license files
  121.     /sbin/rm -rf /etc/netware/licenses > /dev/null 2>&1
  122.  
  123.     #    Remove voltab file
  124.     /sbin/rm -f /etc/netware/voltab > /dev/null 2>&1
  125.  
  126.     #    Clean up nwconfig file
  127.     /usr/sbin/nwcm -x
  128.  
  129.     if [ "$SYSVOL" = "" ]
  130.     then
  131.         return 0
  132.     fi
  133.  
  134.     # remove all files in mail directory
  135.     /sbin/rm -f $SYSVOL/mail/* > /dev/null 2>&1
  136.     /sbin/rm -f $SYSVOL/mail/.* > /dev/null 2>&1
  137.  
  138.     return 0
  139. }
  140.  
  141. function TFMCleanup
  142. {
  143.  
  144. # Remove root privs for the following
  145. $ADMINUSER -r dsinstall,dsrepair,dsadmin,nwserver,ndsbackup,ndsrestore,tsadmin,nwshut,nwvm,nwcm,pserver,stopprint,nwserverstatus,NWS_Status,NWVolume_Setup,NWS_Licensing root >/dev/null 2>&1
  146.  
  147. }
  148.  
  149. function NetMgtCleanup
  150. {
  151.     /usr/sbin/nwcm -q -snwum=off
  152. }
  153.  
  154. function RestoreOriginalDrivers
  155. {
  156. #
  157. #       If we had saved a copy of the old sfd driver, then reinstall it
  158. if [ -d ${PKGSAV}/sfd_backup ] ; then
  159.     #We had saved the old SFD driver
  160.     CWD=${PKGSAV}/sfd_backup
  161.     cd ${CWD}
  162.     #Install the old driver
  163.     echo "/etc/conf/bin/idinstall -M sfd"
  164.     /etc/conf/bin/idinstall -M sfd
  165.     if [ $? -eq 0 ] ; then
  166.         #Rebuild the kernel
  167.         echo "/etc/conf/bin/idbuild -M sfd"
  168.         /etc/conf/bin/idbuild -M sfd
  169.     fi
  170.     cd /
  171.     rm -rf ${CWD}
  172. fi
  173. }
  174.  
  175. function RemoveScoAdmin
  176. {
  177. #
  178. # Remove SCOadmin stuff
  179. #
  180. /usr/bin/scoadmin -p NetWare -d /usr/lib/scoadmin/NetWare/NWVolume_Setup.obj
  181. /usr/bin/scoadmin -p NetWare -d /usr/lib/scoadmin/NetWare/NWS_Status.obj
  182. /usr/bin/scoadmin -p NetWare -d /usr/lib/scoadmin/NetWare/NWS_Licensing.obj
  183. /usr/bin/scoadmin -p NetWare -d /usr/lib/scoadmin/NetWare/dsinstall.obj
  184. /usr/bin/scoadmin -p NetWare -d /usr/lib/scoadmin/NetWare/dsrepair.obj
  185. }
  186.  
  187. ProtocolStackCleanup
  188. RestoreOriginalDrivers
  189. NWSCleanup
  190. TFMCleanup
  191. NetMgtCleanup
  192. RemoveScoAdmin
  193.  
  194. exit 0
  195.