XCOMM! /bin/ksh XCOMM ####### XCOMM Product: CDE XCOMM Fileset: CDE-RUN XCOMM configure XCOMM @(#) $XConsortium: configRun.src /main/5 1996/10/18 16:27:01 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 /bin/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