1$!
2$! @(#)instweb.com	6.29 04/02/09
3$!
4$! Xmcd wwwWarp installation command procedure for OpenVMS.
5$! OpenVMS versions: 6.0 and later, tested with 7.2 and 7.3 on VAX(tm) machines
6$!                   and 7.2-1 as well as 7.3-1 on Alpha(tm) machines
7$!
8$!	xmcd  - Motif(R) CD Audio Player/Ripper
9$!	libdi - CD Audio Device Interface Library
10$!	cddb  - CD Database Management Library
11$!
12$!   Copyright (C) 1993-2004  Ti Kan
13$!   E-mail: xmcd@amb.org
14$!   Contributing author: Michael Monscheuer
15$!   Email: M.Monscheuer@t-online.de
16$!
17$!   This program is free software; you can redistribute it and/or modify
18$!   it under the terms of the GNU General Public License as published by
19$!   the Free Software Foundation; either version 2 of the License, or
20$!   (at your option) any later version.
21$!
22$!   This program is distributed in the hope that it will be useful,
23$!   but WITHOUT ANY WARRANTY; without even the implied warranty of
24$!   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
25$!   GNU General Public License for more details.
26$!
27$!   You should have received a copy of the GNU General Public License
28$!   along with this program; if not, write to the Free Software
29$!   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
30$!
31$!==============================================================================
32$!
33$! Define some basics first and check whether we are in the right directory.
34$! If so, check whether WWWWARP.CFG appears to be xmcd's. If it doesn't, exit.
35$!
36$	USRNAM = F$EDIT(F$GETJPI("","USERNAME"),"COLLAPSE")
37$	DEFENV = F$ENVIRONMENT("DEFAULT")
38$	IF F$LOCATE("<",DEFENV) .NE. F$LENGTH(DEFENV) THEN SET DEFAULT []
39$	DEFENV = F$ENVIRONMENT("DEFAULT")
40$	VVER = F$EDIT(F$GETSYI("VERSION"),"COLLAPSE")
41$	NOBROF = 0
42$	IF F$VERIFY()
43$	 THEN
44$	  ESC = "<ESC>"
45$	 ELSE
46$	  ESC[0,8] = 27
47$	ENDIF
48$	IF F$SEARCH("WWWWARP.CFG") .EQS. ""
49$	 THEN
50$	  WRITE SYS$OUTPUT ""
51$	  WRITE SYS$OUTPUT "  Xmcd's file WWWWARP.CFG is not in the directory you are running this procedure"
52$	  WRITE SYS$OUTPUT "  from. SET DEFAULT to the directory WWWWARP.CFG is resident in, copy or"
53$	  WRITE SYS$OUTPUT "  rename this procedure to this directory if it's not there and start this"
54$	  WRITE SYS$OUTPUT "  procedure again."
55$	  WRITE SYS$OUTPUT ""
56$	  EXIT
57$	 ELSE
58$	  VSCOM = ""
59$	  IF VVER .GES. "V6.2"
60$	   THEN
61$	    VSCOM = "/NOWARNING"
62$	   ELSE
63$	    MESENV = F$ENVIRONMENT("MESSAGE")
64$	    SET MESSAGE/NOTEXT/NOSEVERITY/NOFACILITY/NOIDENTIFICATION
65$	  ENDIF
66$	  SEARCH/NOOUT'VSCOM' WWWWARP.CFG "XMCD"
67$	  COMCOR = $SEVERITY
68$	  IF VVER .LTS. "V6.2" THEN SET MESSAGE 'MESENV'
69$	  IF COMCOR .NE. 1
70$	   THEN
71$	    WRITE SYS$OUTPUT ""
72$	    WRITE SYS$OUTPUT "  The file WWWWARP.CFG found in this directory does not appear to be"
73$	    WRITE SYS$OUTPUT "  xmcd's WWWWARP.CFG"
74$	    WRITE SYS$OUTPUT "  Check whether the directory you started this procedure from really is xmcd's"
75$	    WRITE SYS$OUTPUT "  home directory. If it is, you need to get a new copy of xmcd's WWWWARP.cfg"
76$	    WRITE SYS$OUTPUT ""
77$	  EXIT
78$	  ENDIF
79$	ENDIF
80$!
81$! Create a list for things which may need attention in case the procedure
82$! does not complete successfully. Then check if the user's privileges are
83$! sufficient for browser control from inside xmcd. If they aren't, notify
84$! user and continue as this is not of vital evidence for setting up web
85$! access and browser control.
86$!
87$	OPEN/WRITE LIST SYS$LOGIN:TO_BE_DONE.LIST
88$
89$	IF .NOT. F$PRIVILEGE("CMKRNL")
90$	 THEN
91$	  PRIV = F$GETJPI("","AUTHPRIV")
92$	  IF F$LOCATE("CMKRNL",PRIV) .EQ. F$LENGTH(PRIV)
93$	   THEN
94$	    IF F$LOCATE("SETPRV",PRIV) .EQ. F$LENGTH(PRIV)
95$	     THEN
96$	      WRITE LIST ""
97$	      WRITE LIST "  You don't seem to have the CMKRNL (Change Mode Kernel) privilege which"
98$	      WRITE LIST "  is needed during the process of controlling a browser remotely from"
99$	      WRITE LIST "  inside xmcd."
100$	      WRITE LIST "  Add the CMKRNL privilege to the list of your account's authorized"
101$	      WRITE LIST "  priviliges using the following commands:"
102$	      WRITE LIST ""
103$	      WRITE LIST "  $ SET DEF SYS$SYSTEM:"
104$	      WRITE LIST "  $ MCR AUTHORIZE"
105$	      WRITE LIST "  MOD ''USRNAM'/PRIV=CMKRNL"
106$	      WRITE LIST "  EXIT"
107$	      WRITE LIST ""
108$	      WRITE LIST "  If you aren't allowed to run AUTHORIZE, see your system manager"
109$	      WRITE LIST "  and ask him to add the CMKRNL privilege to your account's authorized"
110$	      WRITE LIST "  privileges."
111$	      WRITE LIST ""
112$	      WRITE LIST "  Lacking CMKRNL does not affect the insatllation procedure but it will"
113$	      WRITE LIST "  affect XMCD at run-time, i.e. XMCD will fail in trying to start or"
114$	      WRITE LIST "  control a browser."
115$	      WRITE LIST ""
116$	      CLOSE LIST
117$	      TYPE SYS$LOGIN:TO_BE_DONE.LIST
118$	      INQUIRE/NOPUNCTATION DUMMY "''ESC'[28C''ESC'[7mPress Return to continue''ESC'[0m"
119$	      OPEN/APPEND LIST SYS$LOGIN:TO_BE_DONE.LIST
120$	      WRITE SYS$OUTPUT ""
121$	    ENDIF
122$	  ENDIF
123$	ENDIF
124$!
125$! Now check for browsers available on this system
126$!
127$	NETSCAPE_FOUND = 0
128$	MOZILLA_FOUND  = 0
129$	MOSAIC_FOUND   = 0
130$	HAVE_NETSCAPE  = 0
131$	HAVE_MOZILLA   = 0
132$	HAVE_MOSAIC    = 0
133$	MOZLOC   = ""
134$	DEF_BROW = 1
135$	IF F$SEARCH("SYS$COMMON:[SYSEXE]MOSAIC.EXE")   .NES. "" THEN MOSAIC_FOUND = 1
136$	IF MOSAIC_FOUND .EQ. 1 THEN HAVE_MOSAIC = 1
137$	IF F$SEARCH("SYS$COMMON:[MOZILLA]MOZILLA.COM") .NES. "" THEN MOZILLA_FOUND = 1
138$	IF F$SEARCH("SYS$COMMON:[CSWB]MOZILLA.COM")    .NES. "" THEN MOZILLA_FOUND = 1
139$	IF MOZILLA_FOUND .EQ. 1
140$	 THEN
141$	  HAVE_MOZILLA = 1
142$	  IF F$SEARCH("SYS$COMMON:[MOZILLA]MOZILLA.COM") .NES. "" THEN MOZLOC = "SYS$COMMON:[MOZILLA]MOZILLA.COM"
143$	  IF F$SEARCH("SYS$COMMON:[CSWB]MOZILLA.COM")    .NES. "" THEN MOZLOC = "SYS$COMMON:[CSWB]MOZILLA.COM"
144$	ENDIF
145$	IF F$SEARCH("SYS$COMMON:[SYSEXE]NETSCAPE.EXE") .NES. "" THEN NETSCAPE_FOUND = 1
146$	IF NETSCAPE_FOUND .EQ. 1 THEN HAVE_NETSCAPE = 1
147$	IF MOSAIC_FOUND .AND. NETSCAPE_FOUND .AND. MOZILLA_FOUND THEN GOTO DETERMINE_BROWSERS
148$	WRITE SYS$OUTPUT ""
149$!
150$! No(t all) browser(s) found where expected, ask user for browsers' directory location
151$!
152$	IF .NOT. MOSAIC_FOUND THEN INQUIRE HAVE_MOSAIC     "  Do you have MOSAIC installed on your system ? [Y/(N)]"
153$	IF F$GETSYI("ARCH_NAME") .EQS. "Alpha"
154$	 THEN
155$	  IF .NOT. MOZILLA_FOUND THEN INQUIRE HAVE_MOZILLA   "  Do you have MOZILLA (or CSWB/HP SWB) installed on your system ? [Y/(N)]"
156$	ENDIF
157$	IF .NOT. NETSCAPE_FOUND THEN INQUIRE HAVE_NETSCAPE "  Do you have NETSCAPE installed on your system ? [Y/(N)]"
158$	HAVE_MOSAIC   = F$EDIT(HAVE_MOSAIC,"UPCASE,COLLAPSE")
159$	HAVE_MOZILLA  = F$EDIT(HAVE_MOZILLA,"UPCASE,COLLAPSE")
160$	HAVE_NETSCAPE = F$EDIT(HAVE_NETSCAPE,"UPCASE,COLLAPSE")
161$	IF HAVE_MOSAIC   .EQS. "" .OR. HAVE_MOSAIC   .EQS. "N" THEN HAVE_MOSAIC   = 0
162$	IF HAVE_MOZILLA  .EQS. "" .OR. HAVE_MOZILLA  .EQS. "N" THEN HAVE_MOZILLA  = 0
163$	IF HAVE_NETSCAPE .EQS. "" .OR. HAVE_NETSCAPE .EQS. "N" THEN HAVE_NETSCAPE = 0
164$	IF HAVE_MOSAIC   THEN HAVE_MOSAIC   = 1
165$	IF HAVE_MOZILLA  THEN HAVE_MOZILLA  = 1
166$	IF HAVE_NETSCAPE THEN HAVE_NETSCAPE = 1
167$	SUM = HAVE_MOSAIC + HAVE_MOZILLA + HAVE_NETSCAPE
168$	IF SUM .EQ. 0
169$	 THEN
170$!
171$! Really no browser available!!!
172$!
173$	  WRITE SYS$OUTPUT ""
174$	  WRITE SYS$OUTPUT "  You indicated that you have neither MOSAIC nor MOZILLA nor NETSCAPE "
175$	  WRITE SYS$OUTPUT "  installed on your system. Please get a copy of at least one browser "
176$	  WRITE SYS$OUTPUT "  first and start this procedure again."
177$	  WRITE SYS$OUTPUT ""
178$	  WRITE LIST ""
179$	  WRITE LIST "  You indicated that you have neither MOSAIC nor MOZILLA nor NETSCAPE "
180$	  WRITE LIST "  installed on your system. Please get a copy of at least one browser "
181$	  WRITE LIST "  first and start this procedure again."
182$	  WRITE LIST ""
183$	  NOBROF = 1
184$!	  GOTO DONE
185$	  GOTO ADD_GENIDX
186$	ENDIF
187$	WRITE SYS$OUTPUT ""
188$!
189$! Check user's privs for write access to SYS$SYSTEM
190$!
191$	PRIV = F$GETJPI("","AUTHPRIV")
192$	IF F$LOCATE("SYSPRV",PRIV) .NE. F$LENGTH(PRIV)
193$	 THEN
194$	  SET PROC/PRIV=SYSPRV
195$	  GOTO COPY
196$	ENDIF
197$	IF F$LOCATE("BYPASS",PRIV)  .NE. F$LENGTH(PRIV)
198$	 THEN
199$	  SET PROC/PRIV=BYPASS
200$	  GOTO COPY
201$	ENDIF
202$	IF F$LOCATE("SETPRV",PRIV)  .NE. F$LENGTH(PRIV)
203$	 THEN
204$	  SET PROC/PRIV=SETPRV
205$	  SET PROC/PRIV=SYSPRV
206$	  GOTO COPY
207$	ENDIF
208$	IF F$GETJPI("","GRP") .EQ. 1 THEN GOTO COPY
209$	IF SUM .EQ. 1 .AND. HAVE_MOZILLA THEN GOTO COPY
210$!
211$! User isn't allowed to write to SYS$SYSTEM
212$!
213$	WRITE SYS$OUTPUT ""
214$	WRITE SYS$OUTPUT "  Appearently you don't have the right to place anything into SYS$SYSTEM."
215$	WRITE SYS$OUTPUT "  As the browser executables you specified above are not resident in "
216$	WRITE SYS$OUTPUT "  SYS$COMMON:[SYSEXE], please see your system manager and ask him to place"
217$	WRITE SYS$OUTPUT "  a copy of the browsers in SYS$COMMON:[SYSEXE]. The file names need to be"
218$	WRITE SYS$OUTPUT "  MOSAIC.EXE and/or NETSCAPE.EXE respectively."
219$	WRITE SYS$OUTPUT ""
220$	WRITE LIST ""
221$	WRITE LIST "  Appearently you don't have the right to place anything into SYS$SYSTEM."
222$	WRITE LIST "  As the browser executables you specified above are not resident in "
223$	WRITE LIST "  SYS$COMMON:[SYSEXE], please see your system manager and ask him to place"
224$	WRITE LIST "  a copy of the browsers in SYS$COMMON:[SYSEXE]. The file names need to be"
225$	WRITE LIST "  MOSAIC.EXE and/or NETSCAPE.EXE respectively."
226$	WRITE LIST ""
227$	INQUIRE/NOPUNCTATION DUMMY "''ESC'[28C''ESC'[7mPress Return to continue''ESC'[0m"
228$	WRITE SYS$OUTPUT ""
229$	GOTO NOCOPY
230$ COPY:
231$!
232$! Now try to copy the stuff indicated by user over to SYS$SYSTEM for MOSAIC and NETSCAPE...
233$! MOZILLA is another kettle of fish.
234$!
235$	IF HAVE_MOSAIC .AND. MOSAIC_FOUND .EQ. 0
236$	 THEN
237$	  WRITE SYS$OUTPUT "  Please enter the current location (DISK:[DIR...]filename.ext) of your MOSAIC"
238$	  WRITE SYS$OUTPUT "  executable now."
239$	  WRITE SYS$OUTPUT "  "
240$	  WRITE SYS$OUTPUT "  BE SURE TO ENTER THE COMPLETE PATH _INCLUDING_ THE FILENAME!"
241$	  WRITE SYS$OUTPUT "  "
242$ INQMOSL:
243$	  INQUIRE MOSLOC   "  The MOSAIC executable is"
244$	  WRITE SYS$OUTPUT "  "
245$	  IF F$PARSE(MOSLOC,,,"NAME") .EQS. "" .OR. F$PARSE(MOSLOC,,,"TYPE")-"." .EQS. "" THEN GOTO INQMOSL
246$	  IF F$SEARCH("''MOSLOC'") .EQS. ""
247$	   THEN
248$	    WRITE SYS$OUTPUT "  "
249$	    WRITE SYS$OUTPUT "  ''MOSLOC' is NOT"
250$	    WRITE SYS$OUTPUT "  the correct location or filename. Please copy your MOSAIC executable to"
251$	    WRITE SYS$OUTPUT "  SYS$COMMON:[SYSEXE]MOSAIC.EXE manually after completion of this procedure"
252$	    WRITE SYS$OUTPUT "  "
253$	    WRITE LIST "  "
254$	    WRITE LIST "  ''MOSLOC' is NOT"
255$	    WRITE LIST "  the correct location or filename. Please copy your MOSAIC executable to"
256$	    WRITE LIST "  SYS$COMMON:[SYSEXE]MOSAIC.EXE manually so that xmcd can make use of it."
257$	    WRITE LIST "  "
258$	    INQUIRE/NOPUNCTATION DUMMY "''ESC'[28C''ESC'[7mPress Return to continue''ESC'[0m"
259$	   ELSE
260$	    WRITE SYS$OUTPUT "  "
261$	    WRITE SYS$OUTPUT "  Copying file to SYS$COMMON:[SYSEXE]MOSAIC.EXE"
262$	    WRITE SYS$OUTPUT "  "
263$	    COPY 'MOSLOC' SYS$COMMON:[SYSEXE]MOSAIC.EXE/PROT=(S:RWED,O:RWED,G:RWE,W:RE)
264$	  ENDIF
265$	ENDIF
266$	IF HAVE_NETSCAPE .AND. NETSCAPE_FOUND .EQ. 0
267$	 THEN
268$	  WRITE SYS$OUTPUT "  Please enter the current location (DISK:[DIR...]filename.ext) of your NETSCAPE"
269$	  WRITE SYS$OUTPUT "  executable now."
270$	  WRITE SYS$OUTPUT "  "
271$	  WRITE SYS$OUTPUT "  BE SURE TO ENTER THE COMPLETE PATH _INCLUDING_ THE FILENAME!"
272$	  WRITE SYS$OUTPUT "  "
273$ INQNSCL:
274$	  INQUIRE NSCLOC   "  The NETSCAPE executable is"
275$	  WRITE SYS$OUTPUT "  "
276$	  IF F$PARSE(NSCLOC,,,"NAME") .EQS. "" .OR. F$PARSE(NSCLOC,,,"TYPE")-"." .EQS. "" THEN GOTO INQNSCL
277$	  IF F$SEARCH("''NSCLOC'") .EQS. ""
278$	   THEN
279$	    WRITE SYS$OUTPUT "  "
280$	    WRITE SYS$OUTPUT "  ''NSCLOC' is NOT"
281$	    WRITE SYS$OUTPUT "  the correct location or filename. Please copy your NETSCAPE executable to"
282$	    WRITE SYS$OUTPUT "  SYS$COMMON:[SYSEXE]NETSCAPE.EXE manually after completion of this procedure."
283$	    WRITE SYS$OUTPUT "  "
284$	    WRITE LIST "  "
285$	    WRITE LIST "  ''NSCLOC' is NOT"
286$	    WRITE LIST "  the correct location or filename. Please copy your NETSCAPE executable to"
287$	    WRITE LIST "  SYS$COMMON:[SYSEXE]NETSCAPE.EXE manually so that xmcd can make use of it."
288$	    WRITE LIST "  "
289$	    INQUIRE/NOPUNCTATION DUMMY "''ESC'[28C''ESC'[7mPress Return to continue''ESC'[0m"
290$	   ELSE
291$	    WRITE SYS$OUTPUT "  "
292$	    WRITE SYS$OUTPUT "  Copying file to SYS$COMMON:[SYSEXE]NETSCAPE.EXE"
293$	    WRITE SYS$OUTPUT "  "
294$	    COPY 'NSCLOC' SYS$COMMON:[SYSEXE]NETSCAPE.EXE/PROT=(S:RWED,O:RWED,G:RWE,W:RE)
295$	  ENDIF
296$	ENDIF
297$	IF HAVE_MOZILLA .AND. MOZILLA_FOUND .EQ. 0
298$	 THEN
299$	  WRITE SYS$OUTPUT "  Please enter the current location (DISK:[DIR...]filename.ext) of your MOZILLA"
300$	  WRITE SYS$OUTPUT "  (or CSWB/HP SWB) start procedure now."
301$	  WRITE SYS$OUTPUT "  "
302$	  WRITE SYS$OUTPUT "  BE SURE TO ENTER THE COMPLETE PATH _INCLUDING_ THE FILENAME!"
303$	  WRITE SYS$OUTPUT "  "
304$ INQMOZL:
305$	  INQUIRE MOZLOC   "  The MOZILLA (or CSWB/HP SWB) start procedure is"
306$	  WRITE SYS$OUTPUT "  "
307$	  IF F$PARSE(MOZLOC,,,"NAME") .EQS. "" .OR. F$PARSE(MOZLOC,,,"TYPE")-"." .EQS. "" THEN GOTO INQMOZL
308$	  IF F$SEARCH("''MOZLOC'") .EQS. ""
309$	   THEN
310$	    WRITE SYS$OUTPUT "  "
311$	    WRITE SYS$OUTPUT "  ''MOZLOC' is NOT"
312$	    WRITE SYS$OUTPUT "  the correct location or filename. Please correct the related definitions in"
313$	    WRITE SYS$OUTPUT "  your LOGIN.COM manually after completion of this procedure."
314$	    WRITE SYS$OUTPUT "  "
315$	    WRITE LIST "  "
316$	    WRITE LIST "  ''MOZLOC' is NOT"
317$	    WRITE LIST "  the correct location or filename. Please correct the related definitions in"
318$	    WRITE LIST "  your LOGIN.COM manually so that xmcd can make use of it."
319$	    WRITE LIST "  "
320$	    INQUIRE/NOPUNCTATION DUMMY "''ESC'[28C''ESC'[7mPress Return to continue''ESC'[0m"
321$	    MOZLOC = "SYS$COMMON:[MOZILLA]MOZILLA.COM"
322$	  ENDIF
323$	ENDIF
324$	IF .NOT. HAVE_NETSCAPE .AND. .NOT. HAVE_MOSAIC
325$	 THEN
326$	  BROWSERS = 1
327$	  DEF_BROW = 1
328$	  GOTO NOCOPY
329$	ENDIF
330$	IF .NOT. HAVE_NETSCAPE .AND. .NOT. HAVE_MOZILLA
331$	 THEN
332$	  BROWSERS = 2
333$	  DEF_BROW = 2
334$	  GOTO NOCOPY
335$	ENDIF
336$	IF .NOT. HAVE_MOSAIC .AND. .NOT. HAVE_MOZILLA
337$	 THEN
338$	  BROWSERS = 3
339$	  DEF_BROW = 3
340$	  GOTO NOCOPY
341$	ENDIF
342$ DETERMINE_BROWSERS:
343$!
344$! Now determine all browsers to be used as well as the user's favourite one.
345$! Display suitable selection menues.
346$!
347$	STR1 = "-"
348$	STR2 = "-"
349$	STR3 = "-"
350$	STR4 = "-"
351$	STR5 = "-"
352$	STR6 = "-"
353$	STR7 = "-"
354$	IF HAVE_MOZILLA						THEN STR1 = "1"
355$	IF HAVE_MOSAIC						THEN STR2 = "2"
356$	IF HAVE_NETSCAPE					THEN STR3 = "3"
357$	IF HAVE_MOZILLA .AND. HAVE_MOSAIC			THEN STR4 = "4"
358$	IF HAVE_MOZILLA .AND. HAVE_NETSCAPE			THEN STR5 = "5"
359$	IF HAVE_MOSAIC  .AND. HAVE_NETSCAPE			THEN STR6 = "6"
360$	IF HAVE_MOSAIC  .AND. HAVE_NETSCAPE .AND. HAVE_MOZILLA	THEN STR7 = "7"
361$	WRITE SYS$OUTPUT "''ESC'[2J''ESC'[0;0H"
362$	WRITE SYS$OUTPUT "  Please select the web browser(s) you intend to use with xmcd now."
363$	WRITE SYS$OUTPUT ""
364$	WRITE SYS$OUTPUT "    Mozilla/CSWB/HP SWB only         ''STR1'"
365$	WRITE SYS$OUTPUT "    Mosaic  only                     ''STR2'"
366$	WRITE SYS$OUTPUT "    Netscape only                    ''STR3'"
367$	WRITE SYS$OUTPUT "    Mozilla/CSWB/HP SWB and Mosaic   ''STR4'"
368$	WRITE SYS$OUTPUT "    Mozilla/CSWB/HP SWB and Netscape ''STR5'"
369$	WRITE SYS$OUTPUT "    Mosaic  and Netscape             ''STR6'"
370$	WRITE SYS$OUTPUT "    All browsers                     ''STR7'"
371$	WRITE SYS$OUTPUT ""
372$	IF STR1 .NES. "-" THEN STR1 = "''STR1',"
373$	IF STR2 .NES. "-" THEN STR2 = "''STR2',"
374$	IF STR3 .NES. "-" THEN STR3 = "''STR3',"
375$	IF STR4 .NES. "-" THEN STR4 = "''STR4',"
376$	IF STR5 .NES. "-" THEN STR5 = "''STR5',"
377$	IF STR6 .NES. "-" THEN STR6 = "''STR6',"
378$	IF STR7 .NES. "-"
379$	 THEN
380$	  STR7 = "[''STR7'],"
381$	  BNUM = 7
382$	 ELSE
383$	  IF STR4 .NES. "-"
384$	   THEN
385$	    STR4 = "[" + STR4 - "," + "],"
386$	    BNUM = 4
387$	   ELSE
388$	    IF STR5 .NES. "-"
389$	     THEN
390$	      STR5 = "[" + STR5 - "," + "],"
391$	      BNUM = 5
392$	     ELSE
393$	      IF STR6 .NES. "-"
394$	       THEN
395$	        STR6 = "[" + STR6 - "," + "],"
396$	        BNUM = 6
397$	       ELSE
398$	        IF STR1 .NES. "-"
399$	         THEN
400$	          STR1 = "[" + STR1 - "," + "],"
401$		  BNUM = 1
402$	         ELSE
403$	          IF STR2 .NES. "-"
404$	           THEN
405$	            STR2 = "[" + STR2 - "," + "],"
406$		    BNUM = 2
407$	           ELSE
408$	            STR3 = "[" + STR3 - "," + "],"
409$		    BNUM = 3
410$	          ENDIF
411$	        ENDIF
412$	      ENDIF
413$	    ENDIF
414$	  ENDIF
415$	ENDIF
416$	CHSTR = STR1 - "-" + STR2 - "-" + STR3 - "-" + STR4 - "-" + STR5 - "-" + STR6 - "-" + STR7 - "-"
417$	CHSTR = F$EXTRACT(0,F$LENGTH(CHSTR)-1,CHSTR)
418$	DSTR1 = "-"
419$	DSTR2 = "-"
420$	DSTR3 = "-"
421$	IF HAVE_MOZILLA
422$	 THEN
423$	  DEFBNUM = 1
424$	  IF HAVE_MOSAIC .AND. HAVE_NETSCAPE
425$	   THEN
426$	    CH2STR = "([1],2,3)"
427$	   ELSE
428$	    IF .NOT. HAVE_NETSCAPE .AND. HAVE_MOSAIC THEN CH2STR = "([1],2)"
429$	    IF HAVE_NETSCAPE .AND. .NOT. HAVE_MOSAIC THEN CH2STR = "([1],3)"
430$	   ENDIF
431$	 ELSE
432$	  IF HAVE_MOSAIC
433$	   THEN
434$	    DEFBNUM = 2
435$	    IF HAVE_MOSAIC .AND. HAVE_NETSCAPE
436$	     THEN
437$	      CH2STR = "([2],3)"
438$	     ELSE
439$	      CH2STR = "([2])"
440$	    ENDIF
441$	   ELSE
442$	    DEFBNUM = 3
443$	    CH2STR = "([3])"
444$	  ENDIF
445$	ENDIF
446$	IF HAVE_MOZILLA  THEN DSTR1 = "1"
447$	IF HAVE_MOSAIC   THEN DSTR2 = "2"
448$	IF HAVE_NETSCAPE THEN DSTR3 = "3"
449$	WRITE SYS$OUTPUT "    Choice (''CHSTR')    "
450$	WRITE SYS$OUTPUT ""
451$	WRITE SYS$OUTPUT ""
452$	WRITE SYS$OUTPUT "  Please select the web browser you want to be your default browser for"
453$	WRITE SYS$OUTPUT "  use with xmcd:"
454$	WRITE SYS$OUTPUT ""
455$	WRITE SYS$OUTPUT "    Mozilla/CSWB/HP SWB ''DSTR1'"
456$	WRITE SYS$OUTPUT "    Mosaic              ''DSTR2'"
457$	WRITE SYS$OUTPUT "    Netscape            ''DSTR3'"
458$	WRITE SYS$OUTPUT ""
459$	WRITE SYS$OUTPUT "    Choice ''CH2STR'"
460$ BROWSERS:
461$	INQUIRE BROWSERS "''ESC'[12;0H''ESC'[2K    Choice (''CHSTR')"
462$	IF BROWSERS .EQS. "" THEN BROWSERS = BNUM
463$	IF F$LOCATE("''BROWSERS'",CHSTR) .EQ. F$LENGTH(CHSTR) THEN GOTO BROWSERS
464$	IF F$INTEGER(BROWSERS) .LT. 4
465$	 THEN
466$	  CH2STR  = "([''BROWSERS'])"
467$	  DEFBNUM = BROWSERS
468$	  IF BROWSERS .EQ. 1 THEN WRITE SYS$OUTPUT "''ESC'[19;16H-''ESC'[20;16H-"
469$	  IF BROWSERS .EQ. 2 THEN WRITE SYS$OUTPUT "''ESC'[18;16H-''ESC'[20;16H-"
470$	  IF BROWSERS .EQ. 3 THEN WRITE SYS$OUTPUT "''ESC'[18;16H-''ESC'[19;16H-"
471$	ENDIF
472$ DEF_BROW:
473$	INQUIRE DEF_BROW "''ESC'[22;0H''ESC'[2K    Choice ''CH2STR'"
474$	IF DEF_BROW .EQS. "" THEN DEF_BROW = DEFBNUM
475$	IF F$LOCATE("''DEF_BROW'",CH2STR) .EQ. F$LENGTH(CH2STR) THEN GOTO DEF_BROW
476$
477$ NOCOPY:
478$
479$	IF DEF_BROW .EQ. 1 THEN DEF_BROW = "MOZILLA"
480$	IF DEF_BROW .EQ. 2 THEN DEF_BROW = "MOSAIC"
481$	IF DEF_BROW .EQ. 3 THEN DEF_BROW = "NETSCAPE"
482$!
483$! Determine which modifications have to be applied to user's LOGIN.COM ...
484$!
485$ ADD_GENIDX:
486$	SET DEF SYS$LOGIN
487$	VSCOM = ""
488$	IF VVER .GES. "V6.2"
489$	 THEN
490$	  VSCOM = "/NOWARNING"
491$	 ELSE
492$	  MESENV = F$ENVIRONMENT("MESSAGE")
493$	  SET MESSAGE/NOTEXT/NOSEVERITY/NOFACILITY/NOIDENTIFICATION
494$	ENDIF
495$	IF F$SEARCH("LOGIN.COM") .EQS. ""
496$	 THEN
497$	  OPEN/WRITE LOFI LOGIN.COM
498$	  CLOSE LOFI
499$	  WRITE SYS$OUTPUT ""
500$	  WRITE SYS$OUTPUT "  Obviously you don't have SYS$LOGIN:LOGIN.COM executed as the default"
501$	  WRITE SYS$OUTPUT "  procedure when loging into the system."
502$	  WRITE SYS$OUTPUT "  Please include LOGIN.COM being now created into your default login"
503$	  WRITE SYS$OUTPUT "  procedure after completion of this procedure."
504$	  WRITE SYS$OUTPUT ""
505$	  WRITE LIST ""
506$	  WRITE LIST "  Obviously you don't have SYS$LOGIN:LOGIN.COM executed as the default"
507$	  WRITE LIST "  procedure when loging into the system."
508$	  WRITE LIST "  Please include LOGIN.COM created by the setup procedure into your "
509$	  WRITE LIST "  default login procedure so that the comnmands can take effect."
510$	  WRITE LIST ""
511$	ENDIF
512$	SEARCH/NOOUT'VSCOM' LOGIN.COM "IF F$MODE() .NES. """OTHER""" THEN DEFINE/GROUP XMCD_BROWSER ''DEF_BROW'"
513$	BRO_SEVER = $SEVERITY
514$	SEARCH/NOOUT'VSCOM'/MATCH=AND LOGIN.COM "GOBROWSER","@",":="
515$	WWW_SEVER = $SEVERITY
516$	SEARCH/NOOUT'VSCOM'/MATCH=AND LOGIN.COM "GENIDX","@",":="
517$	IDX_SEVER = $SEVERITY
518$	IF VVER .LTS. "V6.2" THEN SET MESSAGE 'MESENV'
519$	IF BRO_SEVER .EQ. 1 .AND. WWW_SEVER .EQ. 1 THEN GOTO MOD_WWWWARP
520$
521$	WRITE SYS$OUTPUT ""
522$	WRITE SYS$OUTPUT "  Next you will automatically enter your LOGIN.COM."
523$	WRITE SYS$OUTPUT "  Then move your cursor to the line where you want the set up commands to be."
524$	WRITE SYS$OUTPUT "  Simply press the keys ""PF1"" and ""I"" to insert the line(s) needed."
525$	WRITE SYS$OUTPUT "  To exit press ""PF1"" and ""E""."
526$	WRITE SYS$OUTPUT ""
527$	WRITE SYS$OUTPUT "  If you are re-running this procedure and already have the correct commands"
528$	WRITE SYS$OUTPUT "  included in your LOGIN.COM, press the keys ""PF1"" and ""Q"" to quit."
529$	WRITE SYS$OUTPUT ""
530$	INQUIRE/NOPUNCTATION DUMMY "''ESC'[28C''ESC'[7mPress Return to continue''ESC'[0m"
531$!
532$! ... prepare the commands needed...
533$!
534$	OPEN/WRITE 115 LGI.TXT
535$	IF .NOT. NOBROF
536$	 THEN
537$	  IF BRO_SEVER .NE. 1
538$	   THEN
539$	    WRITE 115 "$	IF F$MODE() .NES. ""OTHER"""
540$	    WRITE 115 "$	 THEN"
541$	    WRITE 115 "$	  IF F$PRIVILEGE(""GRPPRV"")"
542$	    WRITE 115 "$	   THEN"
543$	    WRITE 115 "$	    DEFINE/GROUP XMCD_BROWSER ''DEF_BROW'"
544$	    WRITE 115 "$	   ELSE"
545$	    WRITE 115 "$	    PRIVSA = F$GETJPI("""",""AUTHPRIV"")"
546$	    WRITE 115 "$	    IF F$LOCATE(""GRPPRV"",PRIVSA) .NE. F$LENGTH(PRIVSA)"
547$	    WRITE 115 "$	     THEN"
548$	    WRITE 115 "$	      SET PROCESS/PRIVILEGE=GRPPRV"
549$	    WRITE 115 "$	      DEFINE/GROUP XMCD_BROWSER ''DEF_BROW'"
550$	    WRITE 115 "$	      SET PROCESS/PRIVILEGE=NOGRPPRV"
551$	    WRITE 115 "$	     ELSE"
552$	    WRITE 115 "$	      DEFINE/JOB XMCD_BROWSER ''DEF_BROW'"
553$	    WRITE 115 "$	      WRITE SYS$OUTPUT """""
554$	    WRITE 115 "$	      WRITE SYS$OUTPUT ""  You don't have the GRPPRV privilege."""
555$	    WRITE 115 "$	      WRITE SYS$OUTPUT ""  Changing your default xmcd browser from a text window is not possible."""
556$	    WRITE 115 "$	      WRITE SYS$OUTPUT """""
557$	    WRITE 115 "$	    ENDIF"
558$	    WRITE 115 "$	  ENDIF"
559$	    WRITE 115 "$	ENDIF"
560$	  ENDIF
561$	  IF WWW_SEVER .NE. 1 THEN WRITE 115 "$	GOBROWSER :== @''DEFENV'GOBROWSER.COM
562$	  IF BROWSERS .EQ. 1 .OR. BROWSERS .EQ. 4 .OR. BROWSERS .EQ. 5 .OR. BROWSERS .EQ. 7 THEN WRITE 115 "$	XMCD_MOZISTART :== @''MOZLOC'"
563$	ENDIF
564$	IF IDX_SEVER .NE. 1 THEN WRITE 115 "$	GENIDX :== @''DEFENV'GENIDX.COM
565$	CLOSE 115
566$	OPEN/WRITE 116 E.E
567$	WRITE 116 "SET TEXT END ""[EOF]"""
568$	WRITE 116 "SET MODE CHANGE"
569$	WRITE 116 "DEFINE KEY GOLD E AS 'EXT EXIT.'"
570$	WRITE 116 "DEFINE KEY GOLD Q AS 'EXT QUIT.'"
571$	WRITE 116 "DEFINE KEY GOLD I AS ""EXT INCLUDE LGI.TXT."""
572$	CLOSE 116
573$!
574$! ... and apply the changes.
575$!
576$	DEFINE/USER/NOLOG SYS$INPUT SYS$COMMAND
577$	EDITTT/EDT/COMMAND=E.E LOGIN.COM
578$	DELETE/NOCONFIRM LGI.TXT;*,E.E;*
579$	IF NOBROF
580$	 THEN
581$	  SET DEF 'DEFENV'
582$	  NOBROF = 0
583$	  GOTO DONE
584$	ENDIF
585$
586$ MOD_WWWWARP:
587$!
588$! Set up HTML access to man and discog pages
589$! First check if user has write access.
590$!
591$	SET DEF 'DEFENV'
592$	WRITE SYS$OUTPUT ""
593$	COMCFG_PRO = F$FILE_ATTRIBUTES("WWWWARP.CFG","PRO")
594$	WORLD = F$ELEMENT(3,",",COMCFG_PRO) - "WORLD="
595$	GROUP = F$ELEMENT(2,",",COMCFG_PRO) - "GROUP="
596$	IF F$LOCATE("W",WORLD) .NE. F$LENGTH(WORLD) THEN GOTO UPDATE_CFG
597$	COMCFG_OWN = F$FILE_ATTRIBUTES("WWWWARP.CFG","UIC")
598$	COMCFG_GRP = F$FILE_ATTRIBUTES("WWWWARP.CFG","GRP")
599$	PROCES_OWN = F$GETJPI("","UIC")
600$	PROCES_GRP = F$GETJPI("","GRP")
601$	IF PROCES_GRP .EQ. COMCFG_GRP
602$	 THEN
603$	  IF F$LOCATE("W",GROUP) .NE. F$LENGTH(GROUP) THEN GOTO UPDATE_CFG
604$	ENDIF
605$	IF COMCFG_OWN .EQS. PROCES_OWN THEN GOTO MODFILE
606$	IF F$PRIVILEGE("BYPASS") THEN GOTO MODFILE
607$	IF F$LOCATE("BYPASS",PRIV) .NE. F$LENGTH(PRIV)
608$	 THEN
609$	  SET PROC/PRIV=BYPASS
610$	  GOTO MODFILE
611$	ENDIF
612$	IF F$LOCATE("SETPRV",PRIV) .NE. F$LENGTH(PRIV)
613$	 THEN
614$	  SET PROC/PRIV=SETPRV
615$	  SET PROC/PRIV=BYPASS
616$	  GOTO MODFILE
617$	ENDIF
618$!
619$! Nope, user hasn't write access to WWWWARP.CFG
620$!
621$	WRITE SYS$OUTPUT ""
622$	WRITE SYS$OUTPUT "  You don't seem to have sufficient privileges to update WWWWARP.CFG."
623$	WRITE SYS$OUTPUT "  Please see your system manager and ask him for the right to modify this file"
624$	WRITE SYS$OUTPUT "  and re-run this procedure as soon as write access is established."
625$	WRITE SYS$OUTPUT ""
626$	WRITE LIST ""
627$	WRITE LIST "  You don't seem to have sufficient privileges to update WWWWARP.CFG."
628$	WRITE LIST "  Please see your system manager and ask him for the right to modify this file"
629$	WRITE LIST "  and re-run this procedure as soon as write access is established."
630$	WRITE LIST ""
631$	GOTO DONE
632$ MODFILE:
633$	SET FILE WWWWARP.CFG/PROTECTION=(SYSTEM:RWED,OWNER:RWED,GROUP:RWE,WORLD:RE)
634$
635$ UPDATE_CFG:
636$!
637$! Determine how to apply changes...
638$!
639$	VSCOM = ""
640$	IF VVER .GES. "V6.2"
641$	 THEN
642$	  VSCOM = "/NOWARNING"
643$	 ELSE
644$	  MESENV = F$ENVIRONMENT("MESSAGE")
645$	  SET MESSAGE/NOTEXT/NOSEVERITY/NOFACILITY/NOIDENTIFICATION
646$	ENDIF
647$	SEARCH/NOOUTPUT'VSCOM' WWWWARP.CFG "file://localhost%L/discog/xmcd.html"
648$	MANLINK = $SEVERITY
649$	SEARCH/NOOUTPUT'VSCOM' WWWWARP.CFG "file://localhost%L/discog/%C/%I/index.html"
650$	DISLINK = $SEVERITY
651$	IF VVER .LTS. "V6.2" THEN SET MESSAGE 'MESENV'
652$	IF MANLINK .EQ. 1
653$	 THEN
654$	  OPEN/WRITE 100 BRC.TMP
655$	  WRITE 100 "		""%L.discog]xmcd.html"""
656$	  CLOSE 100
657$	  OPEN/WRITE 103 BRC.EDT
658$	  WRITE 103 "FIND 'file://localhost%L/discog/xmcd.html'"
659$	  WRITE 103 "DELETE"
660$	  WRITE 103 "INCLUDE BRC.TMP"
661$	  WRITE 103 "EXIT"
662$	  CLOSE 103
663$	  WRITE SYS$OUTPUT "  Updating URL for xmcd man page in WWWWARP.CFG ..."
664$	  DEFINE/NOLOG SYS$INPUT SYS$COMMAND
665$	  DEFINE/NOLOG SYS$OUTPUT NLA0:
666$	  EDITTT/EDT/COMMAND=BRC.EDT WWWWARP.CFG
667$	  DEASSIGN SYS$OUTPUT
668$	  DELETE/NOCONFIRM BRC.*;0
669$	ENDIF
670$	IF DISLINK .EQ. 1
671$	 THEN
672$	  OPEN/WRITE 101 BDC.TMP
673$	  WRITE 101 "		""%L.discog.%C.%I]index.html"""
674$	  CLOSE 101
675$	  OPEN/WRITE 102 BDC.EDT
676$	  WRITE 102 "FIND 'file://localhost%L/discog/%C/%I/index.html'"
677$	  WRITE 102 "DELETE"
678$	  WRITE 102 "INCLUDE BDC.TMP"
679$	  WRITE 102 "EXIT"
680$	  CLOSE 102
681$	  WRITE SYS$OUTPUT ""
682$	  WRITE SYS$OUTPUT "  Updating URL for discography page in WWWWARP.CFG ..."
683$	  DEFINE/NOLOG SYS$INPUT SYS$COMMAND
684$	  DEFINE/NOLOG SYS$OUTPUT NLA0:
685$	  EDITTT/EDT/COMMAND=BDC.EDT WWWWARP.CFG
686$	  DEASSIGN SYS$OUTPUT
687$	  DELETE/NOCONFIRM BDC.*;0
688$	  PURGE/NOLOG WWWWARP.CFG
689$	ENDIF
690$	WRITE SYS$OUTPUT ""
691$ DONE:
692$	CLOSE LIST
693$	IF F$SEARCH("[.MISC_D]GOBROWSER.COM") .NES. "" THEN RENAME [.MISC_D]GOBROWSER.COM []
694$	IF F$SEARCH("[.MISC_D]GENIDX.COM") .NES. "" THEN RENAME [.MISC_D]GENIDX.COM []
695$	IF F$FILE_ATTRIBUTES("SYS$LOGIN:TO_BE_DONE.LIST","EOF") .EQ. 0
696$	 THEN
697$!
698$! No errors occured
699$!
700$	  WRITE SYS$OUTPUT ""
701$	  WRITE SYS$OUTPUT "  The installation procedure for setting up web access from inside xmcd via"
702$	  WRITE SYS$OUTPUT "  a browser has completed successfully."
703$	  WRITE SYS$OUTPUT ""
704$	  WRITE SYS$OUTPUT "  Restart your session so that the changes can take effect or execute your"
705$	  WRITE SYS$OUTPUT "  LOGIN.COM manually and run xmcd from the command prompt."
706$	  WRITE SYS$OUTPUT ""
707$	  WRITE SYS$OUTPUT "  ''DEF_BROW' should come up upon clicking on xmcd's wwwWarp button"
708$	  WRITE SYS$OUTPUT "  and choosing a site."
709$	  WRITE SYS$OUTPUT ""
710$	  DELETE/NOCONFIRM SYS$LOGIN:TO_BE_DONE.LIST;*
711$	 ELSE
712$!
713$! At least one error occured
714$!
715$	  WRITE SYS$OUTPUT ""
716$	  WRITE SYS$OUTPUT "  The above items needing attention also can be reviewed in"
717$	  WRITE SYS$OUTPUT "  SYS$LOGIN:TO_BE_DONE.LIST"
718$	  WRITE SYS$OUTPUT ""
719$	  WRITE SYS$OUTPUT ""
720$	ENDIF
721