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