2a972232244137dd0353980319d85f1645083f46
[oweals/cde.git] / cde / admin / IntegTools / post_install / usl / configRun.src
1 XCOMM! /bin/ksh
2 XCOMM #######
3 XCOMM  Product: CDE
4 XCOMM  Fileset: CDE-RUN
5 XCOMM  configure
6 XCOMM  @(#) $XConsortium: configRun.src /main/7 1996/10/18 16:26:43 drk $
7 XCOMM #######
8
9 #define HASH #
10 #define STAR *
11
12 CreateAppConfigDirectory()
13 {
14   HASH
15   HASH Create the APPCONFIG directory inside DT_CONFIG_TOP and create
16   HASH all of its subdirectories
17   HASH
18
19     cd $DT_CONFIG_TOP
20     if [ ! -d $APPCONFIG ]
21     then
22         mkdir $APPCONFIG
23     fi
24
25     cd $APPCONFIG
26
27     for i in $APPCONFIG_DIRS
28     do
29         if [ ! -d $i ]
30         then
31             mkdir $i
32         fi
33         cd $i
34         HASH
35         HASH for each locale
36         HASH
37         for j in $DT_TOP/$APPCONFIG/$i/STAR
38         do
39             if [ ! -d `basename $j` ]
40             then
41                 mkdir `basename $j`
42             fi
43         done
44         cd ..
45     done
46
47 }
48
49 FixInetdDotConf()
50 {
51 FILE="/etc/inet/inetd.conf"
52 TMPFILE="/tmp/inetd.conf"
53
54 XCOMM
55 XCOMM desired inetd.conf entry:
56 XCOMM 100068/2-4 dgram rpc/udp wait root CDE_INSTALLATION_TOP/bin/rpc.cmsd 
57 XCOMM         rpc.cmsd
58 XCOMM
59
60 XCOMM
61 XCOMM ensure links not clobbered
62 XCOMM
63
64         for file in services inetd.conf
65         do
66                 if test ! -L /etc/$file
67                 then    if test -f /etc/$file
68                         then
69                                 rm /etc/$file
70                                 ln -s /etc/inet/$file /etc/$file
71                         fi
72                 fi
73         done
74
75     CMSD=CDE_INSTALLATION_TOP/bin/rpc.cmsd
76     nawk -v cmsd=$CMSD \
77                 '{if ($1 == "100068/2-4" && $6 != cmsd)
78                         print "#cde " $0;
79                   else
80                         print $0
81                  }' $FILE >$TMPFILE
82
83     if test ! -f ${FILE}.preCDE
84     then        mv $FILE ${FILE}.preCDE
85                 cp ${FILE}.preCDE $FILE
86     fi
87     mv $TMPFILE $FILE
88     chmod 444 $FILE
89
90 XCOMM
91 XCOMM now see if there is an occurrence of cmsd
92 XCOMM
93
94     rm -f /tmp/cmsd-already-there
95     nawk '{if ($7 == "rpc.cmsd" && $1 == "100068/2-4") print $0 > \
96         "/tmp/cmsd-already-there"}' $FILE >/dev/null
97
98 XCOMM
99 XCOMM if it is not there, add it
100 XCOMM
101
102     if [ ! -f /tmp/cmsd-already-there ]
103     then
104         echo "100068/2-4 dgram rpc/udp wait root $CMSD rpc.cmsd" >>$FILE
105     else
106         rm /tmp/cmsd-already-there
107     fi
108 }
109
110 UnfixInetdDotConf()
111 {
112 FILE=/etc/inet/inetd.conf
113 TMPFILE=/tmp/inetd.conf
114 CMSD=CDE_INSTALLATION_TOP/bin/rpc.cmsd
115
116     nawk -v cmsd=$CMSD \
117                 '{if ($1 == "100068/2-4" && $6 == cmsd)
118                         ;
119                   else
120                         print $0
121                  }' $FILE >$TMPFILE
122
123     mv $TMPFILE $FILE
124
125     nawk '{if ($1 == "#cde" && $2 == "100068/2-4") {
126                 $1 = $2;
127                 $2 = ""
128             }
129             print $0
130          }' $FILE >$TMPFILE
131
132     mv $TMPFILE $FILE
133 }
134
135 PokeInetd()
136 {
137 XCOMM
138 XCOMM Schedule inetd to re-read inetd.conf with SIGHUP.
139 XCOMM
140     ps -ef | grep inetd | grep -v grep >/tmp/tmppsout
141     if test -s /tmp/tmppsout
142     then
143                 nawk '{print "kill -HUP " $2}' /tmp/tmppsout | /bin/ksh
144     else
145                 /usr/sbin/inetd -s
146     fi
147     rm -f /tmp/tmppsout
148 }
149
150 doDttermTerminfo()
151 {
152     if [ -f $DT_TOP/config/dtterm.ti ]
153     then
154         tic $DT_TOP/config/dtterm.ti
155         if [ -f /usr/share/lib/terminfo/d/dtterm ]
156         then
157             chown bin /usr/share/lib/terminfo/d/dtterm
158             chgrp bin /usr/share/lib/terminfo/d/dtterm
159             chmod 644 /usr/share/lib/terminfo/d/dtterm
160         else
161             echo "Unable to compile $DT_TOP/config/dtterm.ti"
162         fi
163     else
164         echo "Unable to find $DT_TOP/config/dtterm.ti"
165     fi
166 }
167
168 RemoveRunFiles()
169 {
170     while read SRC
171     do
172       if [ "$SRC" != "" ]
173       then
174         rm -f $SRC
175         dirname=${SRC%/STAR}
176         if [ -d $dirname ]
177         then
178           cd $dirname
179           while [ "$dirname" != "$CDE_TOP" ]
180           do
181             cd ..
182             rmdir ${dirname##STAR/} >/dev/null 2>/dev/null
183             dirname=${dirname%/STAR}
184           done
185         fi
186       fi
187     done <<-EOF
188 #include "CDE-RUN.list"
189         EOF
190 }
191
192
193 VerifyInstalledFiles()
194 {
195     echo "Status   mode    owner   group   filename"
196     echo "-----------------------------------------"
197 XCOMM     exists  correct correct correct  /usr/dt/foo1
198 XCOMM     MISSING  WRONG   WRONG   WRONG   /usr/dt/foo2
199 XCOMM        exists    the link is correct    /usr/dt/link
200
201     while read SRC
202     do
203 #include "../verify.func"
204     done <<-EOF
205 #include "CDE-RUN.lst"
206         EOF
207 }
208
209 #include "../option.func"
210
211 XCOMM ######################################################################
212 XCOMM
213 XCOMM  Main body
214 XCOMM
215 XCOMM ######################################################################
216
217 PRODUCT=CDE
218 FILESET=CDE-RUN
219 retval=0
220
221 DT_TOP=CDE_INSTALLATION_TOP
222 DT_CONFIG_TOP=CDE_CONFIGURATION_TOP
223 DT_TEMP_TOP=CDE_LOGFILES_TOP
224 ROOT=/
225
226 retval=0
227
228 APPCONFIG=appconfig
229 APPCONFIG_DIRS="appmanager help icons types"
230
231   HandleOption $*
232
233   if [ "$OPERATION" = "configure" ]
234   then
235
236     HASH
237     HASH create the CDE_LOGFILES_TOP directory
238     HASH
239     if [ ! -d $DT_TEMP_TOP/$APPCONFIG/appmanager ]
240     then
241         mkdir -p $DT_TEMP_TOP/$APPCONFIG/appmanager
242     fi
243     cd $DT_TEMP_TOP
244     mv $APPCONFIG/appmanager .hidden-appmanager
245     chmod -R 755 *
246     chmod 755 .hidden-appmanager
247     chown -R bin *
248     chgrp -R bin *
249     mv .hidden-appmanager $APPCONFIG/appmanager
250     chmod 755 .
251     chown bin .
252     chgrp bin .
253
254     HASH
255     HASH create the CDE_CONFIGURATION_TOP and its config directory
256     HASH
257     if [ ! -d $DT_CONFIG_TOP ]
258     then
259         mkdir -p $DT_CONFIG_TOP
260     fi
261     if [ ! -d $DT_CONFIG_TOP/config ]
262     then
263         mkdir -p $DT_CONFIG_TOP/config
264     fi
265
266     CreateAppConfigDirectory
267
268     HASH
269     HASH Create default printer actions
270     HASH
271     env LANG=C /usr/dt/bin/dtprintinfo -populate
272
273     HASH
274     HASH Configure Xsession.d
275     HASH
276
277     cd $DT_CONFIG_TOP/config
278     if [ ! -d Xsession.d ]
279     then
280         mkdir Xsession.d
281     fi
282
283     cd $DT_CONFIG_TOP
284     chmod -R 755 *
285
286     FixInetdDotConf
287     PokeInetd
288
289     doDttermTerminfo
290
291   elif [ "$OPERATION" = "deconfigure" ]
292   then
293
294     UnfixInetdDotConf
295     PokeInetd
296     RemoveRunFiles
297     VerifyInstalledFiles
298
299   elif [ "$OPERATION" = "verify" ]
300   then
301
302     VerifyInstalledFiles
303
304   fi
305
306   return $retval