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

  1. #! /bin/sh
  2. # $Id: postremove.src,v 1.2 1997/09/24 03:08:34 philip Exp $
  3. ######################################################################
  4. # Triteal Enterprise Desktop
  5. # (c) Copyright 1997 TriTeal Corporation
  6. #
  7. # TEDdesk postremove
  8. ######################################################################
  9.  
  10. ######################################################################
  11. # KillProc
  12. #    $1 process 
  13. ######################################################################
  14. KillProc()
  15. {
  16.  
  17.    ps -ef | fgrep $1 | grep -v grep >/tmp/killproc.$$
  18.  
  19.     if [ -s /tmp/killproc.$$ ]
  20.     then
  21.  
  22.         awk '{print "kill " $2}' /tmp/killproc.$$ | /bin/sh 1>/dev/null
  23.  
  24.         sleep 2
  25.  
  26.         ps -ef | fgrep $1 | grep -v grep >/tmp/killproc.$$
  27.  
  28.         if [ -s /tmp/killproc.$$ ]
  29.         then
  30.  
  31.             awk '{print "kill -TERM " $2}' /tmp/killproc.$$ | /bin/sh 1>/dev/null
  32.  
  33.             sleep 2
  34.  
  35.             ps -ef | fgrep $1 | grep -v grep >/tmp/killproc.$$
  36.  
  37.             if [ -s /tmp/killproc.$$ ]
  38.             then
  39.  
  40.                 awk '{print "kill -9 " $2}' /tmp/killproc.$$ | /bin/sh 1>/dev/null
  41.  
  42.  
  43.                 sleep 2
  44.             fi
  45.         fi
  46.     fi
  47.     rm -f /tmp/killproc.$$
  48. }
  49. ######################################################################
  50. # Usage
  51. ######################################################################
  52. Usage()
  53. {
  54.  
  55. echo "Usage: `basename $0`"
  56.  
  57. echo ""
  58. }
  59.  
  60. ######################################################################
  61. # SyncInetD    
  62. ######################################################################
  63. SyncInetD()
  64. {
  65.    if [ -z "$TED_NO_EDIT_SYSFILES" ]; then
  66. # issue a SIGHUP to the inetd process
  67.  
  68.  
  69.  
  70.       ps -ef | grep inetd | grep -v grep >/tmp/tmppsout
  71.  
  72.       if [ -s /tmp/tmppsout ]
  73.       then
  74.       $AWK '{print "kill -HUP " $2}' /tmp/tmppsout | /bin/sh
  75.       else
  76.  
  77.             /usr/etc/inetd
  78.  
  79.       fi
  80.       rm /tmp/tmppsout
  81.  
  82.    fi
  83. }
  84. ######################################################################
  85. # UpdateEtcAppConfigDirectory
  86. ######################################################################
  87. UpdateEtcAppConfigDirectory()
  88. {
  89. # a new locale has been installed.  update /etc/dt
  90.  
  91.    APPCONFIG=appconfig
  92. # appconfig directories to update
  93.    APPCONFIG_DIRS="appmanager help icons types"
  94.  
  95. # make sure appconfig directory exists
  96.    cd ${INSTALL_ROOT}$TED_CONFIG_TOP
  97.    if [ ! -d $APPCONFIG ]
  98.    then
  99.       mkdir $APPCONFIG
  100.    fi
  101.    cd $APPCONFIG
  102.  
  103.    for i in $APPCONFIG_DIRS
  104.    do
  105. # make sure appconfig subdirectory exists
  106.       if [ ! -d $i ]
  107.       then
  108.          mkdir $i
  109.       fi
  110.       if [ -d ${INSTALL_ROOT}$TED_TOP/$APPCONFIG/$i ]; then
  111.      cd $i
  112.  
  113.     # for each locale in install area, update appconfig
  114.      for j in ${INSTALL_ROOT}$TED_TOP/$APPCONFIG/$i/STAR
  115.      do
  116.             subdir=`basename $j`
  117.             if [ ! -d $subdir ]; then
  118.  
  119. # check to see if the locale is a sym link and create sym link dir if it is
  120.               if [ -h ${INSTALL_ROOT}$TED_TOP/$APPCONFIG/$i/$subdir ] ; then
  121.                 base_subdir=`echo $subdir | cut -f1 -d! | cut -f1 -d_ `
  122.                 ln -s $base_subdir $subdir 
  123.               else
  124.                mkdir $subdir
  125.               fi
  126.  
  127.             fi
  128.      done
  129.      cd ..
  130.       fi
  131.    done
  132. }
  133.  
  134. # $Id: remove.misc,v 1.1.1.1 1997/09/09 01:23:24 philip Exp $
  135. # Misc deinstallation functions
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144. ######################################################################
  145. # RemoveTtdbFromInetd    
  146. ######################################################################
  147. RemoveTtdbFromInetd()
  148. {
  149.  
  150.    /usr/sbin/pmadm -d -p tcp -s ttdbserverd >/dev/null 2>&1
  151.    /usr/sbin/pmadm -r -p tcp -s ttdbserverd >/dev/null 2>&1
  152.    /usr/sbin/sacadm -x -p tcp
  153.  
  154. }
  155. ######################################################################
  156. # RemoveDtspcdFromInetd    
  157. ######################################################################
  158. RemoveDtspcdFromInetd()
  159. {
  160.  
  161.    TMPFILE=/tmp/inetd.conf.dtspcd.$$
  162.     $AWK '{if ($1 == "dtspc")
  163.         ;
  164.       else
  165.         print $0
  166.      }' $INETD_CONF >$TMPFILE
  167.  
  168.     cp $TMPFILE $INETD_CONF
  169.     rm -f $TMPFILE
  170.  
  171. }
  172.  
  173.  
  174.  
  175. ######################################################################
  176. # RemoveCmsdFromInetd    
  177. ######################################################################
  178. RemoveCmsdFromInetd()
  179. {
  180.  
  181.    TMPFILE=/tmp/inetd.conf.cmsd.$$
  182. # first remove the TED rpc.cmsd entry
  183.  
  184.  
  185.  
  186.     $AWK '{if ($1 == "100068/2-5" && $6 == "/usr/dt/bin/rpc.cmsd" )
  187.       ;
  188.     else
  189.       print $0
  190.     }' $INETD_CONF >$TMPFILE
  191.  
  192.  
  193.  
  194.     cp $TMPFILE $INETD_CONF
  195.     rm -f $TMPFILE
  196.  
  197. # now uncomment any previously existing 100068 entry
  198.  
  199.  
  200.    $AWK '{if ($1 == "#TED" && $7 != "/usr/dt/bin/rpc.cmsd" ) {
  201.       $1 = $2;
  202.       $2 = ""
  203.       }
  204.       print $0
  205.    }' $INETD_CONF >$TMPFILE
  206.  
  207.  
  208.     cp $TMPFILE $INETD_CONF
  209.     rm -f $TMPFILE
  210.  
  211. }
  212.  
  213. ######################################################################
  214. # UnFixInetdDotConf    
  215. ######################################################################
  216. UnFixInetdDotConf()
  217. {
  218. if [ -z "$TED_NO_EDIT_SYSFILES" ]; then
  219.    if [ ! -f $INETD_CONF ]; then
  220.        echo "" >$INETD_CONF
  221.    fi
  222.    
  223.  
  224.    RemoveCmsdFromInetd
  225.  
  226.    RemoveDtspcdFromInetd
  227.    RemoveTtdbFromInetd
  228. else
  229.    echo "WARNING: did not modify $INETD_CONF"
  230. fi
  231. }
  232. ######################################################################
  233. # UnFixEtcServices
  234. ######################################################################
  235. UnFixEtcServices()
  236. {
  237. if [ -z "$TED_NO_EDIT_SYSFILES" ]; then
  238.  
  239.    TMPFILE=/tmp/tmp.services.$$
  240.  
  241.     $AWK '{
  242.     if ($1 == "dtspc" && $2 == "6112/tcp")
  243.        ;
  244.      else
  245.        print $0
  246.     }' $SERVICES >$TMPFILE
  247.  
  248.     cp $TMPFILE $SERVICES
  249.     rm -f $TMPFILE
  250.  
  251. else
  252.    echo "WARNING: did not modify $SERVICES"
  253. fi
  254. }
  255.  
  256.  
  257.  
  258. ######################################################################
  259. # Main    
  260. ######################################################################
  261.  
  262.   SERVICES=/etc/inet/services
  263.   INETD_CONF=/etc/inet/inetd.conf
  264.  
  265.  
  266.  
  267.   AWK=nawk
  268.  
  269.  RPC=/etc/rpc
  270.  
  271.  
  272.  
  273.  
  274. TED_TOP=/usr/dt
  275.  
  276.  
  277. TED_CONFIG_TOP=/etc/dt
  278. TED_TEMP_TOP=/var/dt
  279.  
  280.  
  281.  
  282.  
  283.  
  284. if [ -z "$TED_TOP" ]; then
  285.    echo "ERROR TED_TOP is not set, exiting"
  286.    exit 1;
  287. fi
  288.  
  289.  
  290. # kill any remaining programs
  291. KillProc "rpc.cmsd"
  292. KillProc "rpc.ttdbserverd"
  293. KillProc "dtspcd"
  294. KillProc "dtsession"
  295. KillProc "dtlogin"
  296.  
  297.  
  298.  
  299.  
  300.  
  301. UnFixEtcServices
  302. UnFixInetdDotConf
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309. if [ -z "$TED_NO_EDIT_SYSFILES" ]; then
  310. #
  311. # remove the /var/dt directory
  312. #
  313.    if [ ! -z "$TED_TEMP_TOP" ] ; then
  314.       if [ -d "$TED_TEMP_TOP" ] ; then
  315.      rm -rf $TED_TEMP_TOP
  316.       fi
  317.    fi
  318. fi
  319.  
  320.  
  321. # sync inetd with our changes
  322. SyncInetD
  323.  
  324.  
  325.  
  326.