home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 1999 March B
/
SCO_CASTOR4RRT.iso
/
TEDdesk
/
install
/
postremove
< prev
next >
Wrap
Text File
|
1998-08-19
|
6KB
|
326 lines
#! /bin/sh
# $Id: postremove.src,v 1.2 1997/09/24 03:08:34 philip Exp $
######################################################################
# Triteal Enterprise Desktop
# (c) Copyright 1997 TriTeal Corporation
#
# TEDdesk postremove
######################################################################
######################################################################
# KillProc
# $1 process
######################################################################
KillProc()
{
ps -ef | fgrep $1 | grep -v grep >/tmp/killproc.$$
if [ -s /tmp/killproc.$$ ]
then
awk '{print "kill " $2}' /tmp/killproc.$$ | /bin/sh 1>/dev/null
sleep 2
ps -ef | fgrep $1 | grep -v grep >/tmp/killproc.$$
if [ -s /tmp/killproc.$$ ]
then
awk '{print "kill -TERM " $2}' /tmp/killproc.$$ | /bin/sh 1>/dev/null
sleep 2
ps -ef | fgrep $1 | grep -v grep >/tmp/killproc.$$
if [ -s /tmp/killproc.$$ ]
then
awk '{print "kill -9 " $2}' /tmp/killproc.$$ | /bin/sh 1>/dev/null
sleep 2
fi
fi
fi
rm -f /tmp/killproc.$$
}
######################################################################
# Usage
######################################################################
Usage()
{
echo "Usage: `basename $0`"
echo ""
}
######################################################################
# SyncInetD
######################################################################
SyncInetD()
{
if [ -z "$TED_NO_EDIT_SYSFILES" ]; then
# issue a SIGHUP to the inetd process
ps -ef | grep inetd | grep -v grep >/tmp/tmppsout
if [ -s /tmp/tmppsout ]
then
$AWK '{print "kill -HUP " $2}' /tmp/tmppsout | /bin/sh
else
/usr/etc/inetd
fi
rm /tmp/tmppsout
fi
}
######################################################################
# UpdateEtcAppConfigDirectory
######################################################################
UpdateEtcAppConfigDirectory()
{
# a new locale has been installed. update /etc/dt
APPCONFIG=appconfig
# appconfig directories to update
APPCONFIG_DIRS="appmanager help icons types"
# make sure appconfig directory exists
cd ${INSTALL_ROOT}$TED_CONFIG_TOP
if [ ! -d $APPCONFIG ]
then
mkdir $APPCONFIG
fi
cd $APPCONFIG
for i in $APPCONFIG_DIRS
do
# make sure appconfig subdirectory exists
if [ ! -d $i ]
then
mkdir $i
fi
if [ -d ${INSTALL_ROOT}$TED_TOP/$APPCONFIG/$i ]; then
cd $i
# for each locale in install area, update appconfig
for j in ${INSTALL_ROOT}$TED_TOP/$APPCONFIG/$i/STAR
do
subdir=`basename $j`
if [ ! -d $subdir ]; then
# check to see if the locale is a sym link and create sym link dir if it is
if [ -h ${INSTALL_ROOT}$TED_TOP/$APPCONFIG/$i/$subdir ] ; then
base_subdir=`echo $subdir | cut -f1 -d! | cut -f1 -d_ `
ln -s $base_subdir $subdir
else
mkdir $subdir
fi
fi
done
cd ..
fi
done
}
# $Id: remove.misc,v 1.1.1.1 1997/09/09 01:23:24 philip Exp $
# Misc deinstallation functions
######################################################################
# RemoveTtdbFromInetd
######################################################################
RemoveTtdbFromInetd()
{
/usr/sbin/pmadm -d -p tcp -s ttdbserverd >/dev/null 2>&1
/usr/sbin/pmadm -r -p tcp -s ttdbserverd >/dev/null 2>&1
/usr/sbin/sacadm -x -p tcp
}
######################################################################
# RemoveDtspcdFromInetd
######################################################################
RemoveDtspcdFromInetd()
{
TMPFILE=/tmp/inetd.conf.dtspcd.$$
$AWK '{if ($1 == "dtspc")
;
else
print $0
}' $INETD_CONF >$TMPFILE
cp $TMPFILE $INETD_CONF
rm -f $TMPFILE
}
######################################################################
# RemoveCmsdFromInetd
######################################################################
RemoveCmsdFromInetd()
{
TMPFILE=/tmp/inetd.conf.cmsd.$$
# first remove the TED rpc.cmsd entry
$AWK '{if ($1 == "100068/2-5" && $6 == "/usr/dt/bin/rpc.cmsd" )
;
else
print $0
}' $INETD_CONF >$TMPFILE
cp $TMPFILE $INETD_CONF
rm -f $TMPFILE
# now uncomment any previously existing 100068 entry
$AWK '{if ($1 == "#TED" && $7 != "/usr/dt/bin/rpc.cmsd" ) {
$1 = $2;
$2 = ""
}
print $0
}' $INETD_CONF >$TMPFILE
cp $TMPFILE $INETD_CONF
rm -f $TMPFILE
}
######################################################################
# UnFixInetdDotConf
######################################################################
UnFixInetdDotConf()
{
if [ -z "$TED_NO_EDIT_SYSFILES" ]; then
if [ ! -f $INETD_CONF ]; then
echo "" >$INETD_CONF
fi
RemoveCmsdFromInetd
RemoveDtspcdFromInetd
RemoveTtdbFromInetd
else
echo "WARNING: did not modify $INETD_CONF"
fi
}
######################################################################
# UnFixEtcServices
######################################################################
UnFixEtcServices()
{
if [ -z "$TED_NO_EDIT_SYSFILES" ]; then
TMPFILE=/tmp/tmp.services.$$
$AWK '{
if ($1 == "dtspc" && $2 == "6112/tcp")
;
else
print $0
}' $SERVICES >$TMPFILE
cp $TMPFILE $SERVICES
rm -f $TMPFILE
else
echo "WARNING: did not modify $SERVICES"
fi
}
######################################################################
# Main
######################################################################
SERVICES=/etc/inet/services
INETD_CONF=/etc/inet/inetd.conf
AWK=nawk
RPC=/etc/rpc
TED_TOP=/usr/dt
TED_CONFIG_TOP=/etc/dt
TED_TEMP_TOP=/var/dt
if [ -z "$TED_TOP" ]; then
echo "ERROR TED_TOP is not set, exiting"
exit 1;
fi
# kill any remaining programs
KillProc "rpc.cmsd"
KillProc "rpc.ttdbserverd"
KillProc "dtspcd"
KillProc "dtsession"
KillProc "dtlogin"
UnFixEtcServices
UnFixInetdDotConf
if [ -z "$TED_NO_EDIT_SYSFILES" ]; then
#
# remove the /var/dt directory
#
if [ ! -z "$TED_TEMP_TOP" ] ; then
if [ -d "$TED_TEMP_TOP" ] ; then
rm -rf $TED_TEMP_TOP
fi
fi
fi
# sync inetd with our changes
SyncInetD