installCDE.src: remove duplicate code
[oweals/cde.git] / cde / admin / IntegTools / post_install / freebsd / configRun.src
1 XCOMM! /bin/ksh
2 XCOMM #######
3 XCOMM  Product: CDE
4 XCOMM  Fileset: CDE-RUN
5 XCOMM  configure
6 XCOMM  @(#) $TOG: configRun.src /main/1 1998/03/11 16:18:24 mgreess $
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 cmsd/2-4 dgram rpc/udp4 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 == "cmsd/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 == "cmsd/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 == "cmsd/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 "cmsd/2-5 dgram rpc/udp4 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 == "cmsd/2-4" || $1 == "cmsd/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 cmsd entry
98
99     awk '{if ($1 == "#cde") {
100                 if ($2 == "cmsd/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     else
155         echo "Unable to find $DT_TOP/config/dtterm.ti"
156     fi
157 }
158
159 RemoveRunFiles()
160 {
161     while read SRC
162     do
163       if [ "$SRC" != "" ]
164       then
165         rm -f $SRC
166         dirname=${SRC%/STAR}
167         if [ -d $dirname ]
168         then
169           cd $dirname
170           while [ "$dirname" != "$CDE_TOP" ]
171           do
172             cd ..
173             rmdir ${dirname##STAR/} >/dev/null 2>/dev/null
174             dirname=${dirname%/STAR}
175           done
176         fi
177       fi
178     done <<-EOF
179 #include "CDE-RUN.list"
180         EOF
181 }
182
183
184 VerifyInstalledFiles()
185 {
186     echo "Status   mode    owner   group   filename"
187     echo "-----------------------------------------"
188 XCOMM     exists  correct correct correct  /usr/dt/foo1
189 XCOMM     MISSING  WRONG   WRONG   WRONG   /usr/dt/foo2
190 XCOMM        exists    the link is correct    /usr/dt/link
191
192     while read SRC
193     do
194 #include "../verify.func"
195     done <<-EOF
196 #include "CDE-RUN.lst"
197         EOF
198 }
199
200
201 PrintUsage()
202 {
203   echo "Usage:" $0 "[OPERATION]"
204   echo ""
205   echo "Operations:"
206   echo "    -e        configure"
207   echo "    -d        deconfigure"
208   echo "    -v        verify"
209   echo "    -s        size"
210   echo "    -h        help"
211 }
212
213 #include "../option.func"
214
215 XCOMM ##########################################################################
216 XCOMM
217 XCOMM                           Main Body
218 XCOMM
219 XCOMM ##########################################################################
220
221 PRODUCT=CDE
222 FILESET=CDE-RUN
223
224 DT_TOP=CDE_INSTALLATION_TOP
225 DT_CONFIG_TOP=CDE_CONFIGURATION_TOP
226 DT_TEMP_TOP=CDE_LOGFILES_TOP
227 ROOT=/
228
229 retval=0
230
231 APPCONFIG=appconfig
232 APPCONFIG_DIRS="appmanager help icons types"
233 PRINTERS=""
234 DEFAULT_PRINTER="DtPrint"
235
236   HandleOption $*
237
238   if [ "$OPERATION" = "usage" ]
239   then
240     PrintUsage
241     exit 0
242   fi
243
244   if [ "$OPERATION" = "configure" ]
245   then
246
247     HASH
248     HASH create the CDE_LOGFILES_TOP directory
249     HASH
250
251     if [ ! -d $DT_TEMP_TOP/$APPCONFIG/appmanager ]
252     then
253         mkdir -p $DT_TEMP_TOP/$APPCONFIG/appmanager
254     fi
255
256     cd $DT_TEMP_TOP
257     mv $APPCONFIG/appmanager .hidden-appmanager
258     chmod -R 755 *
259     chmod 755 .hidden-appmanager
260     chown -R bin *
261     chgrp -R bin *
262     mv .hidden-appmanager $APPCONFIG/appmanager
263     chmod 755 .
264     chown bin .
265     chgrp bin .
266
267     HASH
268     HASH create the CDE_CONFIGURATION_TOP and its config directory
269     HASH
270     if [ ! -d $DT_CONFIG_TOP ]
271     then
272         mkdir -p $DT_CONFIG_TOP
273     fi
274     if [ ! -d $DT_CONFIG_TOP/config ]
275     then
276         mkdir -p $DT_CONFIG_TOP/config
277     fi
278
279     CreateAppConfigDirectory
280
281     HASH
282     HASH ConfigurePrintersDir
283     HASH
284     HASH env LANG=C /usr/dt/bin/dtprintinfo -populate
285
286     HASH
287     HASH Configure Xsession.d
288     HASH
289
290     cd $DT_CONFIG_TOP/config
291     if [ ! -d Xsession.d ]
292     then
293         mkdir Xsession.d
294     fi
295
296     cd $DT_CONFIG_TOP
297     chmod -R 755 *
298
299     FixInetdDotConf
300
301   elif [ "$OPERATION" = "deconfigure" ]
302   then
303
304     UnfixInetdDotConf
305
306     RemoveRunFiles
307
308     VerifyInstalledFiles
309
310   elif [ "$OPERATION" = "verify" ]
311   then
312
313     VerifyInstalledFiles
314
315   fi
316
317   if [ "$OPERATION" != "verify" ]
318   then
319
320     HASH issue a SIGHUP to the inetd process
321
322     /etc/rc.d/inetd onereload
323   fi
324
325   HASH dtmail requires setgid
326   chmod 2555 $DT_TOP/bin/dtmail
327
328   return $retval