cdesktopenv/cde/admin/IntegTools/post_install/usl/configRun.src

307 lines
5.4 KiB
Plaintext

XCOMM! /bin/ksh
XCOMM #######
XCOMM Product: CDE
XCOMM Fileset: CDE-RUN
XCOMM configure
XCOMM @(#) $XConsortium: configRun.src /main/7 1996/10/18 16:26:43 drk $
XCOMM #######
#define HASH #
#define STAR *
CreateAppConfigDirectory()
{
HASH
HASH Create the APPCONFIG directory inside DT_CONFIG_TOP and create
HASH all of its subdirectories
HASH
cd $DT_CONFIG_TOP
if [ ! -d $APPCONFIG ]
then
mkdir $APPCONFIG
fi
cd $APPCONFIG
for i in $APPCONFIG_DIRS
do
if [ ! -d $i ]
then
mkdir $i
fi
cd $i
HASH
HASH for each locale
HASH
for j in $DT_TOP/$APPCONFIG/$i/STAR
do
if [ ! -d `basename $j` ]
then
mkdir `basename $j`
fi
done
cd ..
done
}
FixInetdDotConf()
{
FILE="/etc/inet/inetd.conf"
TMPFILE="/tmp/inetd.conf"
XCOMM
XCOMM desired inetd.conf entry:
XCOMM 100068/2-4 dgram rpc/udp wait root CDE_INSTALLATION_TOP/bin/rpc.cmsd
XCOMM rpc.cmsd
XCOMM
XCOMM
XCOMM ensure links not clobbered
XCOMM
for file in services inetd.conf
do
if test ! -L /etc/$file
then if test -f /etc/$file
then
rm /etc/$file
ln -s /etc/inet/$file /etc/$file
fi
fi
done
CMSD=CDE_INSTALLATION_TOP/bin/rpc.cmsd
nawk -v cmsd=$CMSD \
'{if ($1 == "100068/2-4" && $6 != cmsd)
print "#cde " $0;
else
print $0
}' $FILE >$TMPFILE
if test ! -f ${FILE}.preCDE
then mv $FILE ${FILE}.preCDE
cp ${FILE}.preCDE $FILE
fi
mv $TMPFILE $FILE
chmod 444 $FILE
XCOMM
XCOMM now see if there is an occurrence of cmsd
XCOMM
rm -f /tmp/cmsd-already-there
nawk '{if ($7 == "rpc.cmsd" && $1 == "100068/2-4") print $0 > \
"/tmp/cmsd-already-there"}' $FILE >/dev/null
XCOMM
XCOMM if it is not there, add it
XCOMM
if [ ! -f /tmp/cmsd-already-there ]
then
echo "100068/2-4 dgram rpc/udp wait root $CMSD rpc.cmsd" >>$FILE
else
rm /tmp/cmsd-already-there
fi
}
UnfixInetdDotConf()
{
FILE=/etc/inet/inetd.conf
TMPFILE=/tmp/inetd.conf
CMSD=CDE_INSTALLATION_TOP/bin/rpc.cmsd
nawk -v cmsd=$CMSD \
'{if ($1 == "100068/2-4" && $6 == cmsd)
;
else
print $0
}' $FILE >$TMPFILE
mv $TMPFILE $FILE
nawk '{if ($1 == "#cde" && $2 == "100068/2-4") {
$1 = $2;
$2 = ""
}
print $0
}' $FILE >$TMPFILE
mv $TMPFILE $FILE
}
PokeInetd()
{
XCOMM
XCOMM Schedule inetd to re-read inetd.conf with SIGHUP.
XCOMM
ps -ef | grep inetd | grep -v grep >/tmp/tmppsout
if test -s /tmp/tmppsout
then
nawk '{print "kill -HUP " $2}' /tmp/tmppsout | /bin/ksh
else
/usr/sbin/inetd -s
fi
rm -f /tmp/tmppsout
}
doDttermTerminfo()
{
if [ -f $DT_TOP/config/dtterm.ti ]
then
tic $DT_TOP/config/dtterm.ti
if [ -f /usr/share/lib/terminfo/d/dtterm ]
then
chown bin /usr/share/lib/terminfo/d/dtterm
chgrp bin /usr/share/lib/terminfo/d/dtterm
chmod 644 /usr/share/lib/terminfo/d/dtterm
else
echo "Unable to compile $DT_TOP/config/dtterm.ti"
fi
else
echo "Unable to find $DT_TOP/config/dtterm.ti"
fi
}
RemoveRunFiles()
{
while read SRC
do
if [ "$SRC" != "" ]
then
rm -f $SRC
dirname=${SRC%/STAR}
if [ -d $dirname ]
then
cd $dirname
while [ "$dirname" != "$CDE_TOP" ]
do
cd ..
rmdir ${dirname##STAR/} >/dev/null 2>/dev/null
dirname=${dirname%/STAR}
done
fi
fi
done <<-EOF
#include "CDE-RUN.list"
EOF
}
VerifyInstalledFiles()
{
echo "Status mode owner group filename"
echo "-----------------------------------------"
XCOMM exists correct correct correct /usr/dt/foo1
XCOMM MISSING WRONG WRONG WRONG /usr/dt/foo2
XCOMM exists the link is correct /usr/dt/link
while read SRC
do
#include "../verify.func"
done <<-EOF
#include "CDE-RUN.lst"
EOF
}
#include "../option.func"
XCOMM ######################################################################
XCOMM
XCOMM Main body
XCOMM
XCOMM ######################################################################
PRODUCT=CDE
FILESET=CDE-RUN
retval=0
DT_TOP=CDE_INSTALLATION_TOP
DT_CONFIG_TOP=CDE_CONFIGURATION_TOP
DT_TEMP_TOP=CDE_LOGFILES_TOP
ROOT=/
retval=0
APPCONFIG=appconfig
APPCONFIG_DIRS="appmanager help icons types"
HandleOption $*
if [ "$OPERATION" = "configure" ]
then
HASH
HASH create the CDE_LOGFILES_TOP directory
HASH
if [ ! -d $DT_TEMP_TOP/$APPCONFIG/appmanager ]
then
mkdir -p $DT_TEMP_TOP/$APPCONFIG/appmanager
fi
cd $DT_TEMP_TOP
mv $APPCONFIG/appmanager .hidden-appmanager
chmod -R 755 *
chmod 755 .hidden-appmanager
chown -R bin *
chgrp -R bin *
mv .hidden-appmanager $APPCONFIG/appmanager
chmod 755 .
chown bin .
chgrp bin .
HASH
HASH create the CDE_CONFIGURATION_TOP and its config directory
HASH
if [ ! -d $DT_CONFIG_TOP ]
then
mkdir -p $DT_CONFIG_TOP
fi
if [ ! -d $DT_CONFIG_TOP/config ]
then
mkdir -p $DT_CONFIG_TOP/config
fi
CreateAppConfigDirectory
HASH
HASH Create default printer actions
HASH
env LANG=C /usr/dt/bin/dtprintinfo -populate
HASH
HASH Configure Xsession.d
HASH
cd $DT_CONFIG_TOP/config
if [ ! -d Xsession.d ]
then
mkdir Xsession.d
fi
cd $DT_CONFIG_TOP
chmod -R 755 *
FixInetdDotConf
PokeInetd
doDttermTerminfo
elif [ "$OPERATION" = "deconfigure" ]
then
UnfixInetdDotConf
PokeInetd
RemoveRunFiles
VerifyInstalledFiles
elif [ "$OPERATION" = "verify" ]
then
VerifyInstalledFiles
fi
return $retval