home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
netdor4.zip
/
SETUP
/
CONFIG.ITL
< prev
next >
Wrap
Text File
|
1996-04-04
|
62KB
|
1,743 lines
******************************************************************************
* COU Installation ITL Script *
******************************************************************************
* Licensed Materials-Property of IBM *
* 5604-472 (c) Copyright IBM Corporation, 1993 *
* All rights reserved. *
* US Government Users Restricted Rights - *
* Use, duplication or disclosure restricted *
* by GSA ADP Schedule Contract with IBM Corp. *
******************************************************************************
msgmode off
* cls
repstr <name>, NetDoor
repstr <lname>, IBM NetDoor/2
repstr <prodid>, COU
repstr <backupdir>, &val({BOOT.DRIVE})\OS2\INSTALL
eval result = date() time()
msgmode &env(COU.VERBOSE), &env(COU.LOG)
repstr <vernum>, &env(COU.VERNUM)
say &val(<lname>) configuration &val(<vernum>) started +
(&env(COU.INSTTYPE)) -- &result()
errormode halt
synch tag inst 0.1-1
errormode nullenv 0
******************************************************************************
* Initialization *
******************************************************************************
* Define installation disk numbers
*
repstr <diskroot>, &env(COU.ROOTPATH)DISK_
repstr <diricons>, &val({boot.drive})\OS2\DLL\
repstr <diskclient>, 1
repstr <diskcmpvm>, 1
repstr <diskdlls>, 1
repstr <diskfinal>, 1
* Disk where 1st image ZIP resides
repstr <disksrvimg1>, 2
* Number of image files
repstr <disksrvimgN>, 12
repstr <disksrvcfg>, 1
repstr <disksrvdata>, 1
* In the following two sets of values, the first is always a normalized
* directory name (X:\, X:\DIR); the second is the same but will always
* have a trailing backslash (X:\, X:\DIR\).
*
* Remote (logical) drive/path specification for use during access.
*
repstr <dirremote>, &env(COU.REMOTE)
repstr <dirrempath>, &env(COU.REMOTEPATH)
*
* Local (physical) drive/path specification.
*
repstr <dirlocal>, &env(COU.LOCAL)
* eval result=length('&val(<dirlocal>)')
* if &result() <= 3
* eval result = ItlErr('Error: Local directory specification error.')
* endif
repstr <dirlocpath>, &env(COU.LOCALPATH)
* Define what type(s) of server, if any, are being installed.
*
repstr <tcpdatasrvonly>, N
if '&env(COU.INSTTYPE)' = 'SERVER'
if '&env(COU.MASTER)' = '<HERE>'
repstr <srvmaster>, Y
else
repstr <srvmaster>, N
endif
**** PTR 114 start ****
if ('&env(COU.IMAGEDRIVE<1>)' <> '' & '&env(COU.IMAGEDRIVE<1>)' <> 'NONE')
repstr <srvtypeimage>, Y
else
repstr <srvtypeimage>, N
endif
if ('&env(COU.DATADRIVE<1>)' <> '' & '&env(COU.DATADRIVE<1>)' <> 'NONE')
**** PTR 114 end ****
repstr <srvtypedata>, Y
**** PTR 238 start ****
if '&env(COU.SRVTYPE<1>)' <> 'DOMAIN'
repstr <tcpdatasrvonly>, Y
endif
**** PTR 238 end ****
else
repstr <srvtypedata>, N
endif
else
repstr <srvtypeimage>, N
repstr <srvtypedata>, N
repstr <srvmaster>, N
endif
* Define installation directory and file names
*
repstr <dirroot>, &val(<dirlocpath>)
if '&env(COU.INSTCLASS)' = 'PRODUCT'
repstr <dirsystem>, &val(<dirroot>)SYSTEM
repstr <dirdata>, &val(<dirroot>)DATA
repstr <dirdll>, &val(<dirroot>)DLL
repstr <dirsysdata>, &val(<dirroot>)SYSDATA
repstr <fileini>, &val(<dirsystem>)\NETDOOR.INI
if '&val(<srvtypedata>)' = 'Y'
repstr <dircoudata>, &env(COU.DATADRIVE)\COUDATA
endif
else
repstr <dirsystem>, &val(<dirroot>)COREDATA
repstr <dirdata>, &val(<dirroot>)USERDATA
repstr <dirdll>, &val(<dirroot>)MYDLL
repstr <dirsysdata>, &val(<dirroot>)CORESTUF
repstr <fileini>, &val(<dirsystem>)\CORE.INI
if '&val(<srvtypedata>)' = 'Y'
repstr <dircoudata>, &env(COU.DATADRIVE)\CORESTUF
endif
endif
if &val({OS2VER}) >= 2.0
repstr <groupid>, <CORE_COREFOLDER>
else
repstr <groupid>, &val(<name>)
endif
repstr <dirremadmtools>, &val(<dirrempath>)ADMTOOLS
repstr <direxe>, &val(<dirroot>)UTIL
repstr <dirtemp>, &val(<dirroot>)TEMP
repstr <dirhelp>, &val(<dirroot>)HELP
repstr <diroldconfg>, &val(<dirroot>)OLDCONFG
repstr <dircache>, &val(<dirroot>)CACHE
repstr <dirlogs>, &val(<dirroot>)LOGS
repstr <dirstage>, &val(<dirroot>)COUSTAGE
repstr <fileclientzip>, CLIENT.ZIP
repstr <filesrvzip>, SERVER.ZIP
repstr <nameinit>, Open &val(<name>)
repstr <fileinitexe>, OPENDOOR.EXE
repstr <fileinittype>, PM
repstr <fileinitid>, OPENDOOR
repstr <fileaddexe>, &val(<dirrempath>)CATALOG.EXE
repstr <filenewpwexe>, &val(<dirrempath>)NEWPW.EXE
repstr <filedooradmexe>, &val(<dirrempath>)ADMTOOLS\DOORADM.EXE
repstr <filesyslevel>, SYSLEVEL.&val(<prodid>)
if &val({OS2VER}) >= 2.0
eval result = x2c('0A')
repstr <lf>, &result()
repstr <namemaintS>, NetDoor Maintenance&val(<lf>)Status
repstr <namemaintO>, NetDoor Maintenance&val(<lf>)Options
repstr <catname>, <FOLDER>&val(<name>)
else
repstr <namemaintS>, NetDoor Maintenance Status
repstr <namemaintO>, NetDoor Maintenance Options
repstr <catname>, &val(<name>)
endif
repstr <filemaintexe>, MAINT.EXE
repstr <filefixlog>, &val(<dirdata>)\MAINT.LOG
repstr <filetimeadm>, &val(<dirdata>)\TIMEXEC.ADM
repstr <fileuserinit>, &val(<dirsystem>)\USERINIT.CMD
repstr <fileservers>, SERVERS.COR
if '&val(<srvtypeimage>)' = 'Y'
repstr <dirimage>, &env(COU.IMAGEDRIVE)\COUIMAGE
repstr <diradmtools>, &val(<dirimage>)\ADMTOOLS
endif
if '&env(COU.CMDRIVE<1>)' <> ''
repstr <dircm>, &env(COU.CMDRIVE)\CMLIB
endif
eval result = date('e')
repstr <date>, &result()
eval result = time('c')
repstr <time>, &result()
repstr <timestamp>, &val(<date>)\&val(<time>)&val({NULL})
****** (0) Create pointer in OS2.INI file
* Assume following handled by INSTALL.EXE
* if '&env(COU.INSTCLASS)' = 'PRODUCT'
* addini USER, COU, Environment, 1&val({NULL})
* else
* addini USER, COU, Environment, 0&val({NULL})
* endif
eval result=rxCouInfo('SET', 'INIFILE', '&val(<fileini>)')
******************************************************************************
if '&env(COU.JUMP<1>)' <> ''
goto &env(COU.JUMP)
endif
* if '&val({SYNCHPOINT})' <> ''
* goto &val({SYNCHPOINT})
* endif
******************************************************************************
synch 1
:INST-1
if '&env(COU.INSTTYPE)' = 'SERVER'
say Configuring &val(<name>) server for &env(COU.ACCMETH) access.
if '&val(<srvtypeimage>)' = 'Y'
say Server will provide a &val(<name>) image.
endif
if '&val(<srvtypedata>)' = 'Y'
**** PTR 238 start ****
if '&val(<tcpdatasrvonly>)' = 'Y'
say Server will provide &val(<name>) data services (TCP/IP only).
else
say Server will provide &val(<name>) data services.
endif
**** PTR 238 end ****
endif
if '&env(COU.PROTOCOL.NETBIOS<1>)' = 'YES'
say Services will be provided via NETBIOS.
endif
if '&env(COU.PROTOCOL.NFS<1>)' = 'YES'
say Services will be provided via NFS.
endif
else
say Configuring &val(<name>) client for &env(COU.ACCMETH) access.
endif
******************************************************************************
* Create client directory tree *
******************************************************************************
say
say Creating &val(<name>) client directories...
** The following directories are assumed to exist by unless reconfigured
** by the user.
**
md &val(<dirsystem>)
md &val(<dirdata>)
md &val(<dirdll>)
md &val(<direxe>)
md &val(<dirhelp>)
md &val(<dirtemp>)
md &val(<diroldconfg>)
md &val(<dirstage>)
* if '&env(COU.ACCMETH)' = 'CD-ROM'
* md &val(<dircache>)
* endif
if '&env(COU.INSTTYPE)' = 'SERVER'
say Creating &val(<name>) server directories...
md &val(<dirlogs>)
md &val(<dirlogs>)\NOTIFY
if '&val(<srvtypedata>)' = 'Y'
say Creating data directories...
md &val(<dircoudata>)
endif
if '&val(<srvtypeimage>)' = 'Y'
say Creating image directory...
md &val(<dirimage>)
endif
endif
******************************************************************************
* CONFIG.SYS modifications. *
******************************************************************************
synch 2
:INST-2
repstr <sysfile>, &val({BOOT.DRIVE})\CONFIG.SYS
say
say Modifying &val(<sysfile>)...
rf &val(<sysfile>)
eval Result = SetComment('DESC', '&val(<prodid>) installation' date())
****** (2a) Update LIBPATH
say Checking &val(<name>) entries in LIBPATH...
cp LIBPATH, ., begin, force
cp LIBPATH, &val(<dirdll>), after ., force
cp LIBPATH, &val(<dirrempath>)LOCAL\DLL, end, force
cp LIBPATH, &val(<dirrempath>)DLL, end, force
if '&env(COU.INSTCLASS)' = 'IUO'
cp PATH, &val({boot.drive})\OS2\APPS\DLL, delete
cp LIBPATH, &val({boot.drive})\OS2\APPS\DLL, after &val(<dirrempath>)DLL, force
endif
****** (2b) Update PATH
say Checking &val(<name>) entries in PATH...
cp PATH, &val(<direxe>), begin, force
cp PATH, &val(<dirsystem>), after &val(<direxe>), force
cp PATH, &val(<dirrempath>)LOCAL, end, force
cp PATH, &val(<dirremote>), end, force
if '&env(COU.INSTCLASS)' = 'IUO'
cp PATH, &val({boot.drive})\OS2\APPS, after &val(<dirremote>), force
endif
if '&env(COU.INSTTYPE)' = 'SERVER'
cp PATH, &val(<dirremadmtools>), end, force
if '&env(COU.INSTCLASS)' = 'IUO'
cp PATH, &val(<dirroot>)REBOOT, delete
endif
endif
****** (2c) Update DPATH
say Checking &val(<name>) entries in DPATH...
cp DPATH, &val(<dirdata>), begin
if '&env(COU.INSTCLASS)' = 'PRODUCT'
cp DPATH, &val(<dirrempath>)LOCAL\COMPLEX, end, force
else
cp DPATH, &val(<dirrempath>)LOCAL\SITE, end, force
cp DPATH, &val(<dirremote>), delete
cp DPATH, &val(<direxe>), delete
cp DPATH, &val(<dirroot>)MAIL, delete
cp DPATH, &val(<dirrempath>)USERDATA, delete
endif
****** (2d) Update HELP
say Checking &val(<name>) entries in HELP path...
if '&env(COU.INSTCLASS)' = 'PRODUCT'
cp HELP, &val(<dirhelp>), end, force
cp HELP, &val(<dirrempath>)LOCAL\HELP, end, force
cp HELP, &val(<dirrempath>)HELP, end, force
else
cp HELP, &val(<dirhelp>), end, force
cp HELP, &val(<dirrempath>)LOCAL\BOOK, end, force
cp HELP, &val(<dirrempath>)BOOK, end, force
endif
****** (2e) Update BOOKSHELF
say Checking &val(<name>) entries in BOOKSHELF path...
cp BOOKSHELF, &val(<dirrempath>)LOCAL\BOOK, end, force
cp BOOKSHELF, &val(<dirrempath>)BOOK, end, force
****** (2f) Update BOOKMGR
say Checking &val(<name>) entries in BOOKMGR path...
eval result=Find('SET BOOKSHELF', 'ALL+', 'BEGIN')
if '&env(COU.INSTCLASS)' = 'PRODUCT'
**** PTR 10038 start ****
cp READIBM, &val(<dirrempath>)LOCAL\BOOKS, end, force
cp READIBM, &val(<dirrempath>)BOOKS, end, force
**** PTR 10038 end ****
cp BOOKMGR, &val(<dirrempath>)LOCAL\BOOKS, end, force
cp BOOKMGR, &val(<dirrempath>)BOOKS, end, force
else
**** PTR 10038 start ****
cp READIBM, &val(<dirrempath>)LOCAL\BOOKMGR, end, force
cp READIBM, &val(<dirrempath>)BOOKMGR\BOOKS, end, force
**** PTR 10038 end ****
cp BOOKMGR, &val(<dirrempath>)LOCAL\BOOKMGR, end, force
cp BOOKMGR, &val(<dirrempath>)BOOKMGR\BOOKS, end, force
endif
****** (2g) (IUO only) Add environment variables
if '&env(COU.INSTCLASS)' = 'IUO'
say Setting environment variables...
repstr <coucmt>, ** &val(<name>) commands follow **
rem &val(<coucmt>), bottom, , blank
env CORE.DIR , &val(<dirrempath>), after &val(<coucmt>)
env USER.DIR, &val(<dirlocpath>), after &val(<coucmt>)
env USER.DATA, &val(<dirdata>), after &val(<coucmt>)
** Remove obsolete environment variables that might exist from previous use.
env CORE.DRIVE,,REMOVE
env USER.DRIVE,,REMOVE
env TEMP.DIR,,REMOVE
** Delete erroneous SET TIMESLICE statement that may have been inserted
** by a previous version of the install.
remall SET TIMESLICE, delete
else
remall CORE.DIR
remall USER.DIR
remall USER.DATA
endif
****** (2h) Add LCSF support (CD-ROM only)
* if '&env(COU.ACCMETH)' = 'CD-ROM'
* env LCSFCACH, &env(COU.CACHEDIR), after &val(<coucmt>)
* remall LCSF.IFS
* remall LCSF20.IFS
* cmd IFS=&val(<direxe>)\LCSF20.IFS
* endif
****** (2i) Force IOPL=YES
** Removed from standard config -- not required by product.
* cmd IOPL=YES, before BUFFERS=
****** (2j) Update BUFFERS
** Per info in Personal Systems 10/92, page 31, large number of buffers is no
** longer required by OS/2 2.0. Use 3 for systems that are entirely HPFS, 10 for
** all FAT or mixed systems. On 1.3 systems, use 64. However, empirical evidence
** suggests that more buffers are required for 2.0 systems with a CD-ROM drive
** attached.
if &val({OS2VER}) >= 2.0
if '&env(COU.ACCMETH)' = 'CD-ROM'
numchk BUFFERS, 30, 100, 30
else
if '&env(COU.FATMAP<1>)' = ''
numchk BUFFERS, 3, 100, 3
* numchk BUFFERS, 3, 3, 3 - Force to 3
else
numchk BUFFERS, 10, 100, 10
* numchk BUFFERS, 10, 10, 10 - Force to 10
endif
endif
else
numchk BUFFERS, 64, 100, 64
endif
****** (2k) Update THREADS
** THREADS=512 may be overkill on 2.x systems; if reduced, should not go
** below 256.
if '&env(COU.INSTTYPE)' = 'SERVER'
if &val({OS2VER}) >= 2.0
numchk THREADS, 512, 4095, 512
else
numchk THREADS, 512, 512, 512
endif
else
if &val({OS2VER}) >= 2.0
numchk THREADS, 512, 4095, 512
else
numchk THREADS, 256, 512, 256
endif
endif
****** (2l) (2.x only) Set RESTARTOBJECTS if not already specified
** Not strictly required by product, but makes OS/2 2.x work more as expected
** by the average user. Also, eliminates problems with the shell trying to
** restart broken applications which can hang OS/2.
****** (2l1) (2.x only) Set AUTOSTART
** CONNECTIONS on AUTOSTART line conflicts with COREUP strategy.
if &val({OS2VER}) >= 2.0
cmd SET RESTARTOBJECTS=STARTUPFOLDERSONLY, TOP, ,NEWONLY
endif
if &val({OS2VER}) >= 2.0 & &val({OS2VER}) < 2.3
cmd SET AUTOSTART=PROGRAMS&val({comma})TASKLIST&val({comma})FOLDERS
else
if &val({OS2VER}) >= 2.3
cmd SET AUTOSTART=PROGRAMS&val({comma})TASKLIST&val({comma})FOLDERS&val({comma})LAUNCHPAD
endif
endif
****** (2m) (2.x only) Set template DELDIR environment variable
* if &val({OS2VER}) >= 2.0
* if '&env(COU.DELDIRCMD<1>)' <> ''
* eval SetCurL('BOTTOM')
* rem *** UnREM the following command to enable UNDELETE.
* rem &env(COU.DELDIRCMD), BOTTOM
* endif
* endif
****** (2n) (1.x only) Activate COM02 device driver
** Removed from standard config -- not required by product
* if &val({OS2VER}) < 2.0
* cmd DEVICE=&val({BOOT.DRIVE})\OS2\COM02.SYS
* endif
****** (2o) (NETBIOS server only) Update cache sizes
** CACHE statement is redundant in 1.3/2.0 - started by PMSHELL instead
* remall RUN=&val({BOOT.DRIVE})\OS2\CACHE.EXE
if '&env(COU.INSTTYPE)' = 'SERVER' & '&env(COU.PROTOCOL.NETBIOS<1>)' = 'YES'
say Updating disk cache sizes...
* For LS 1.x systems (CSD < 6000)
if &env(COU.LSCSD) < 6000
* (If SOME drives are HPFS...)
if '&env(COU.HPFSMAP<1>)' <> ''
cmd IFS=&val({BOOT.DRIVE})\OS2\HPFS.IFS /C:128 +
/AUTOCHECK:&env(COU.HPFSMAP), top
if '&val(<srvtypeimage>)' = 'Y'
cmd DISKCACHE=5976&val({comma})128
else
cmd DISKCACHE=5217&val({comma})128
endif
* (else all drives are FAT...)
else
cmd DISKCACHE=2048&val({comma})128
endif
* For LS 2.x/3.x/4.x systems
else
* For LS 2.x/3.x
if &env(COU.LSCSD) < 8000
repstr <dir386fs>, &val({BOOT.DRIVE})\IBM386FS\
* (If all drives are HPFS386...)
if '&env(COU.FATMAP<1>)' = ''
**** PTR 10206 removed /USEALLMEM from following line
cmd IFS=&val(<dir386fs>)HPFS386.IFS &val(<dir386fs>)HPFS200.386 +
/I:&env(COU.LSDRIVE)\IBMLAN /C:3586 /A:*, top
* (else SOME or ALL are FAT...)
else
cmd DISKCACHE=1793&val({comma})LW&val({comma})128&val({comma})+
AC:&env(COU.FATMAP)
* (If any are HPFS386...)
**** PTR 10055 start ****
if '&env(COU.HPFSMAP<1>)' <> ''
**** PTR 10055 end *****
**** PTR 10206 removed /USEALLMEM from following line
cmd IFS=&val(<dir386fs>)HPFS386.IFS &val(<dir386fs>)HPFS200.386 +
/I:&env(COU.LSDRIVE)\IBMLAN /C:1793 /A:*, top
endif
endif
endif
endif
endif
****** (2p) Miscellaneous settings
if '&env(COU.INSTTYPE)' = 'SERVER'
* Force SWAPDOS for 1.x servers for extra memory.
if &val({OS2VER}) < 2.0
cmd MEMMAN=SWAP&val({comma})MOVE&val({comma})SWAPDOS
endif
if '&env(COU.INSTCLASS)' = 'IUO'
envvar KEYS, ON
endif
endif
****** (2q) (CMPVM only) Set CMPVM values (Only on CM. Ignored if CM/2 installed.)
if ('&env(COU.CMPVM<1>)' = 'Y' & +
('&env(COU.CMDRIVE<1>)' <> '' | '&env(COU.CM2DRIVE<1>)' <> ''))
say
say Installing CM/PVM...
env CMPVM.HOSTNODE, &env(COU.HOSTSYS<1>), bottom
env CMPVM.GATENAME, &env(COU.CMPVMGATE<1>), bottom
env CMPVM.USERNAME, &env(COU.MACHNAME<1>)-WSN, bottom
env CMPVM.LTS, 5, bottom
env CMPVM.LANA, 0, bottom
endif
wf &val(<backupdir>), N=&val(<prodid>)
******************************************************************************
* STARTUP.CMD modifications. *
******************************************************************************
synch 3
:INST-3
repstr <startup>, &val({BOOT.DRIVE})\STARTUP.CMD
say
say Modifying &val(<startup>)...
rf &val(<startup>)
eval Result = SetComment('DESC', '&val(<prodid>) installation' date())
**** PTR 10116 start ****
repstr <AgentActive>, N
eval Result = FIND('\LCU.CMD', 'ALL+')
if '&result()' = '0'
eval Result = SETCURL(CURLN() + 2)
repstr <AgentActive>, Y
else
eval Result = FIND('\NFSRFI.CMD', 'ALL+')
if '&result()' = '0'
eval Result = SETCURL(CURLN() + 2)
repstr <AgentActive>, Y
else
eval Result = FIND('CASAGENT', 'ALL+')
if '&result()' = '0'
eval Result = SETCURL(CURLN() + 2)
repstr <AgentActive>, Y
endif
endif
endif
****** (3a) (NETBIOS only) Remove conflicts
** Remove lines that might conflict with product, or are superfluous.
remall csrvup
if '&env(COU.ACCMETH)' = 'NETBIOS'
remall logon
remall net start req, delete
remall net start rdr, delete
remall net start requester, delete
remall LCSF
if '&env(COU.INSTTYPE)' = 'SERVER'
remall net start server, delete
if '&val(<AgentActive>)' = 'Y'
cmd NET START SRV, AFTER
else
cmd NET START SRV, TOP
endif
endif
endif
**** PTR 10126 start ****
if '&env(COU.ACCMETH)' = 'NFS' & '&env(COU.INSTTYPE)' = 'SERVER'
eval Result=SysDestroyObject('<TCP/IP50>')
if '&val(<AgentActive>)' = 'Y'
cmd CALL TCPSTART, AFTER
else
cmd CALL TCPSTART, TOP
endif
endif
**** PTR 10126 end ****
****** (3b/c) General, Product modifications
remall coreup, delete
remall &val(<fileinitexe>), delete
if '&env(COU.STARTUP)' = 'CMD'
if '&env(COU.ACCMETH)' = 'NETBIOS'
repstr <WhereInit>, after NET START
else
**** PTR 10126a start ****
if '&env(COU.ACCMETH)' = 'NFS'
repstr <WhereInit>, after TCPSTART
else
**** NB: Following IF is probably superfluous.
if '&val(<AgentActive>)' = 'Y'
repstr <WhereInit>, after
else
repstr <WhereInit>, top
endif
endif
endif
**** PTR 10126a end ****
cmd @call &val(<dirsystem>)\&val(<fileinitexe>), &val(<WhereInit>), +
&val(<fileinitexe>)
cmd @exit, bottom
endif
**** PTR 10116 end ****
wf &val(<backupdir>), N=&val(<prodid>)
******************************************************************************
* AUTOEXEC.BAT modifications. *
******************************************************************************
synch 4
:INST-4
repstr <fileautoexec>, &val({BOOT.DRIVE})\AUTOEXEC.BAT
say
say Modifying &val(<fileautoexec>)...
rf &val(<fileautoexec>)
eval Result = SetComment('DESC', '&val(<prodid>) installation' date())
cp PATH, &val(<dirrempath>)LOCAL, end, force
cp PATH, &val(<dirremote>), end, force
* if &val({OS2VER}) >= 2.0
* if '&env(COU.DELDIRCMD<1>)' <> ''
* eval SetCurL('BOTTOM')
* rem *** UnREM the following command to enable UNDELETE.
* rem &env(COU.DELDIRCMD), BOTTOM
* endif
* endif
wf &val(<backupdir>), N=&val(<prodid>)
******************************************************************************
* USERINIT modifications *
******************************************************************************
synch 5
:INST-5
say
say Modifying &val(<fileuserinit>)...
rf &val(<fileuserinit>)
eval Result = SetComment('DESC', '&val(<prodid>) installation' date())
if '&env(COU.INSTTYPE)' = 'SERVER'
cmd CALL SRVINIT.CMD
endif
wf &val(<backupdir>), N=&val(<prodid>)
******************************************************************************
* IBMLAN.INI Modification (NETBIOS only) *
******************************************************************************
synch 6
:INST-6
if '&env(COU.ACCMETH)' = 'NETBIOS' | '&env(COU.PROTOCOL.NETBIOS<1>)' = 'YES'
if '&env(COU.INSTTYPE)' = 'CLIENT' | ('&env(COU.INSTTYPE)' = 'SERVER' & '&env(COU.LSCSD<1>)' < 8000)
repstr <ibmlanini>, &env(COU.LRDRIVE)\IBMLAN\IBMLAN.INI
say
say Modifying &val(<ibmlanini>)...
rf &val(<ibmlanini>)
eval Result = SetComment('DESC', '&val(<prodid>) installation' date())
if '&env(COU.HPFS386)' = 1
if '&env(COU.FATMAP<1>)' = ''
repstr <hpfs386>, ALL
else
if '&env(COU.HPFSMAP<1>)' = ''
repstr <hpfs386>, NO
else
repstr <hpfs386>, SOME
endif
endif
else
repstr <hpfs386>, NO
endif
****** (6a) Modify DOMAIN= parameter.
** Removed -- assumed set correctly during LAN Req install
* cmd .. DOMAIN = &env(CS.PRIDOM)..
****** (6b) Modify OTHDOMAINS= parameter, logonverification if LR 3.0
if '&env(COU.INIOTHDOMAINS<1>)' <> ''
cmd .. othdomains = &env(COU.INIOTHDOMAINS)..
endif
if &env(COU.LRCSD) >= 7000
cmd .. logonverification = domain..
endif
****** (6c) Modify operating parameters
if '&env(COU.INSTTYPE)' = 'CLIENT'
if &env(COU.LRCSD) < 6000
* Set DOS session printing timeout to 8 seconds
numchk WRKHEURISTICS 31, 0, 0
else
* Increase maxcmds (default is 16)
numchk MAXCMDS, 48, 255, 48
* Increase maxthreads (default is 10)
numchk MAXTHREADS, 30, 254, 30
* Increase numworkbuf (default is 15)
numchk NUMWORKBUF, 45, 50, 45
endif
endif
if '&env(COU.INSTTYPE)' = 'SERVER'
** LS 1.x systems
if &env(COU.LSCSD) < 6000
repstr <netx>, netbios$&val({comma})0&val({comma})NB30
if '&val(<srvtypeimage>)' = 'N'
cmd .. net1=&val(<netx>)&val({comma}) +
133&val({comma})145&val({comma})16.., after [networks]
numchk MAXUSERS, 115, 254, 115
numchk MAXLOCKS, 550, 8000, 550
if '&val(<HPFS386>)' <> 'ALL'
numchk MAXOPENS, 5500, 8000, 5500
numchk MAXSEARCHES, 50, 1927, 50
endif
if '&val(<HPFS386>)' = 'ALL'
numchk NUMBIGBUF, 0, 0, 0
else
numchk NUMBIGBUF, 43, 128, 43
endif
numchk SRVPIPES, 9, 20, 9
else
cmd .. net1=&val(<netx>)&val({comma}) +
205&val({comma})145&val({comma})16.., after [networks]
numchk MAXUSERS, 201, 254, 201
numchk MAXLOCKS, 800, 8000, 800
if '&val(<HPFS386>)' <> 'ALL'
numchk MAXOPENS, 8000, 8000, 8000
numchk MAXSEARCHES, 60, 1927, 60
endif
if '&val(<HPFS386>)' = 'ALL'
numchk NUMBIGBUF, 0, 0, 0
else
numchk NUMBIGBUF, 45, 128, 45
endif
numchk SRVPIPES, 16, 20, 16
endif
numchk MAXCMDS, 32, 255, 32
numchk MAXTHREADS, 20, 254, 20
numchk AUTODISCONNECT, 120, 65535, 120
cmd .. cleanup = no.., AFTER autodisconnect =
numchk MAXCHDEVJOB, 8, 65535, 8
numchk MAXCHDEVQ, 8, 65535, 8
numchk MAXCHDEVS, 8, 16, 8
numchk MAXCONNECTIONS, 1024, 1024
numchk MAXSESSOPENS, 55, 8000, 55
numchk MAXSHARES, 50, 500, 50
numchk NUMREQBUF, 120, 408, 120
* Turn off opp file locking - LS bug
numchk WRKHEURISTICS 0, 0, 0
numchk SRVHEURISTICS 0, 0, 0
* Set scavenger thread interval to 20 seconds (default is 10)
numchk SRVHEURISTICS 10, 3, 3
* Set number of 64KB read-ahead buffers to at least 4 (default is 1)
numchk SRVHEURISTICS 13, 4, 9, 4
endif
** LS 2.x, 3.x systems (HPFS386)
if &env(COU.LSCSD) >= 6000
repstr <netx>, netbeui$&val({comma})0&val({comma})LM10
if '&val(<srvtypeimage>)' <> 'Y'
* ** AS, 1 16/4 or BusMaster adapter (max 81 users)
cmd .. net1=&val(<netx>)&val({comma}) +
84&val({comma})187&val({comma})15.., after [networks]
numchk MAXUSERS, 81, 1000, 81
if '&val(<HPFS386>)' <> 'ALL'
numchk MAXCONNECTIONS, 972, 2000, 972
endif
numchk NUMREQBUF, 36, 300, 36
numchk SRVPIPES, 6, 20, 6
else
* ** DC, 1 16/4 or BusMaster adapter (max 100 users)
cmd .. net1=&val(<netx>)&val({comma}) +
123&val({comma})245&val({comma})15.., after [networks]
numchk MAXUSERS, 110, 1000, 110
if '&val(<HPFS386>)' <> 'ALL'
numchk MAXCONNECTIONS, 1260, 2000, 1260
endif
numchk NUMREQBUF, 220, 300, 220
numchk SRVPIPES, 9, 20, 9
endif
numchk MAXSHARES, 50, 500, 50
if '&val(<HPFS386>)' <> 'ALL'
numchk MAXLOCKS, 550, 8000, 550
numchk MAXOPENS, 5500, 8000, 550
* Set scavenger thread interval to 15 seconds (default is 10)
numchk SRVHEURISTICS 10, 2, 2, 2
* Number of bigbufs for read-ahead (default 1, CNFGLS30 says 6, vol 2 says max 5)
numchk SRVHEURISTICS 13, 5, 9, 5
* If all drives are HPFS386, bigbuffers are not used.
endif
if '&val(<HPFS386>)' = 'ALL'
numchk NUMBIGBUF, 0, 0, 0
endif
endif
endif
wf &val(<backupdir>), N=&val(<prodid>)
endif
endif
******************************************************************************
* PROTOCOL.INI Modification (LS 2.x, 3.x NETBIOS Server only) *
******************************************************************************
synch 7
:INST-7
if '&env(COU.INSTTYPE)' = 'SERVER' & '&env(COU.PROTOCOL.NETBIOS<1>)' = 'YES' +
& '&env(COU.LSCSD<1>)' >= 6000 & '&env(COU.LSCSD<1>)' < 8000
repstr <fileprotocol>, &env(COU.LAPDRIVE)\IBMCOM\PROTOCOL.INI
say
say Modifying &val(<fileprotocol>)...
rf &val(<fileprotocol>)
eval Result = SetComment('DESC', '&val(<prodid>) installation' date())
* cmd .. LINKS = 50&val({comma})50.. - 17 Aug 93 - PTR 10121
cmd .. LINKS = 20&val({comma})20..
cmd .. MAX_SAPS = 5&val({comma})5..
cmd .. USERS = 5&val({comma})5..
cmd .. ELEMENTS = 1200&val({comma})1200..
* numchk SESSIONS, 160, 160, 160 - 27 may 93 - not enough
numchk SESSIONS, 210, 210, 210
* numchk NCBS, 220, 220, 220 - 27 May 93 - not enough
* numchk NCBS, 250, 250, 250 - 6 Aug 93 - no room for SRVIFS
* numchk NCBS, 254, 254, 254 - 17 Aug 93 - PTR 10121
numchk NCBS, 250, 250, 250
* numchk NAMES, 60, 60, 60 - 19 Aug 93 - PTR 10121
numchk NAMES, 40, 40, 40
numchk TI, 30600, 30600, 30600
numchk T1, 500, 500, 500
numchk T2, 200, 200, 200
numchk MAXOUT, 1, 1, 1
wf &val(<backupdir>), N=&val(<prodid>)
endif
******************************************************************************
* INI Creation *
******************************************************************************
synch 8
:INST-8
say
say Creating &val(<fileini>)...
****** (8a) Create pointer in OS2.INI file
if '&env(COU.INSTCLASS)' = 'PRODUCT'
addini USER, COU, Environment, 1&val({NULL})
else
addini USER, COU, Environment, 0&val({NULL})
endif
eval result=rxCouInfo('SET', 'INIFILE', '&val(<fileini>)')
****** (8b) Store operating information in INI file.
eval 'ATTRIB -R &val(<fileini>) >>&env(COU.LOG) 2>&1'
eval rxOs2Ini('&val(<fileini>)', 'LocalFileUpdate', '$RXDEL')
addini &val(<fileini>), COREUP, Access, &env(COU.ACCMETH)&val({NULL})
if '&env(COU.HOSTID<1>)' <> ''
addini &val(<fileini>), COREUP, Uid, &env(COU.HOSTID)&val({NULL})
addini &val(<fileini>), COREUP, Flags, $RXDEL
endif
if "&env(COU.NAME<1>)" <> ''
addini &val(<fileini>), USERDATA, NAME, &env(COU.NAME)&val({NULL})
endif
if '&env(COU.HOSTID<1>)' <> ''
addini &val(<fileini>), USERDATA, MAIL-ID, &env(COU.HOSTID)&val({NULL})
endif
if '&env(COU.HOSTNODE<1>)' <> ''
addini &val(<fileini>), USERDATA, MAIL-NODE, &env(COU.HOSTNODE)&val({NULL})
endif
addini &val(<fileini>), COREFIX, @AutoFix, 1&val({NULL})
addini &val(<fileini>), COREFIX, @ContMode, 1&val({NULL})
addini &val(<fileini>), SystemData, DataServer, $RXDEL
addini &val(<fileini>), SystemData, ImageServer, $RXDEL
if '&val(<srvtypeimage>)' = 'Y' | '&val(<srvtypedata>)' = 'Y'
addini &val(<fileini>), SystemData, SystemType, SERVER
if '&val(<srvtypeimage>)' = 'Y'
addini &val(<fileini>), SystemData, ImageServer, 1
addini &val(<fileini>), SystemData, AccessProvided, +
&env(COU.SRVPROTOCOL)
endif
if '&val(<srvtypedata>)' = 'Y'
addini &val(<fileini>), SystemData, DataServer, 1
endif
else
addini &val(<fileini>), SystemData, SystemType, CLIENT
endif
addini &val(<fileini>), SystemData, InstallBootDrive, &val({boot.drive})
eval result=rxCouInfo('SET', 'LOCAL', '&val(<dirlocal>)')
eval result=rxCouInfo('SET', 'REMOTE', '&val(<dirremote>)')
eval result=rxCouInfo('SET', 'DATA', '&val(<dirdata>)')
eval result=rxCouInfo('SET', 'TEMP', '&val(<dirtemp>)')
eval result=rxCouInfo('SET', 'DLL', '&val(<dirdll>)')
eval result=rxCouInfo('SET', 'EXE', '&val(<direxe>)')
eval result=rxCouInfo('SET', 'OLDCONFIG', '&val(<diroldconfg>)')
eval result=rxCouInfo('SET', 'SYSTEM', '&val(<dirsystem>)')
if '&env(COU.SITE<1>)' <> ''
addini &val(<fileini>), USERDATA, SITE, &env(COU.SITE)&val({NULL})
endif
**** PTR 10218 start ****
if '&env(COU.ACCMETH)' = 'NETBIOS'
addini &val(<fileini>), COREUP, LDomains, &env(COU.LOGDOMS)&val({NULL})
if '&val(<srvmaster>)' = 'Y'
addini &val(<fileini>), COREUP, CServers, &env(COU.MACHNAME<1>)&val({NULL})
else
addini &val(<fileini>), COREUP, CServers, *&val({NULL}), NEWONLY
endif
endif
if '&env(COU.ACCMETH)' = 'NFS'
addini &val(<fileini>), COREUP, LDomains, &env(COU.NFSSRV)&val({NULL})
if '&val(<srvmaster>)' = 'Y'
addini &val(<fileini>), COREUP, CServers, &env(COU.IPNAME<1>)&val({NULL})
else
addini &val(<fileini>), COREUP, CServers, *&val({NULL}), NEWONLY
endif
endif
if '&env(COU.ACCMETH)' = 'CD-ROM'
* addini &val(<fileini>), Directories, CoreImage, &env(CS.COREIMAGE)
* addini &val(<fileini>), COREUP, CServers, &env(CS.COREIMAGE)
* addini &val(<fileini>), COREUP, LCSF, 1
else
addini &val(<fileini>), COREUP, LCSF, 0&val({NULL})
addini &val(<fileini>), COREUP, UseTVFS, 0&val({NULL})
endif
**** PTR 10218 end ****
**** PTR 238 start ****
****** (8c) Set up dynamic aliases (LS only, backup DCs)
if ('&env(COU.PROTOCOL.NETBIOS<1>)' = 'YES')
addini &val(<fileini>), DynamicAliases, QNETMON, +
&val({boot.drive})\ /R:"QNET monitoring alias"'
endif
if ('&env(COU.PROTOCOL.NETBIOS<1>)' = 'YES') & ('&env(COU.BKDC<1>)' = 'Y')
if '&val(<srvtypedata>)' = 'Y'
addini &val(<fileini>), DynamicAliases, &env(COU.DATARES), +
&val(<dircoudata>) /R:"&val(<name>) Data" /UN
addini &val(<fileini>), DynamicACPs, &val(<dircoudata>), +
USERS GUESTS=RXA;
endif
endif
**** PTR 238 end ****
****** (8d) Set Logo timeout value IFF it's not already set.
addini USER, PM_ControlPanel, LogoDisplayTime, 2000&({null}), NEWONLY
****** (8e) (1.x only) OS2.INI patch
* Set display to 8514 to bypass desktop color bug in 1.x install.
if &val({OS2VER}) < 2.0
addini USER, PM_Colors, Display, 8514&val({NULL})
endif
****** (8f) IUO Cleanup
if '&env(COU.INSTCLASS)' <> 'PRODUCT'
addini &val(<fileini>), COREUP, CDomains, $RXDEL
addini &val(<fileini>), COREUP, LogData, $RXDEL
addini &val(<fileini>), COREUP, AutoFix, $RXDEL
addini &val(<fileini>), COREUP, LastAcc, $RXDEL
addini &val(<fileini>), COREUP, COREUP1Data, $RXDEL
addini &val(<fileini>), COREUP, COREUP1RexxVer, $RXDEL
addini &val(<fileini>), COREUP, Id, $RXDEL
addini &val(<fileini>), COREUP, LastLoadTime, $RXDEL
addini &val(<fileini>), COREUP, ODomains, $RXDEL
addini &val(<fileini>), COREADDED, COREUP, $RXDEL
addini &val(<fileini>), COREADDED, COREADD, $RXDEL
addini &val(<fileini>), COREADDED, COREFIX, $RXDEL
addini &val(<fileini>), COREFIX, @LastArgs, $RXDEL
addini &val(<fileini>), COREFIX, @MailSlot, $RXDEL
** Delete bogus entry (w/ quotes) if exists.
addini &val(<fileini>), 'USERDATA', $RXDEL
endif
******************************************************************************
* Client file creation *
******************************************************************************
synch 9
:INST-9
say
say Installing client files...
****** (9a) Local DLLs used during installation
coreinstdircheck &env(COU.SOURCEDR), &val(<diskroot>)&val(<diskdlls>), +
COUINST_&val(<diskdlls>), &val(<diskdlls>)
repfile &env(COU.ROOTPATH)TOOLS\COUUPDTF.EXE, &val(<dirstage>)
eval result = rxCouCopy('&val({boot.drive})\OS2\DLL\COUENV.DLL', +
'[dll]COUENV.DLL', 'IMMEDIATE', 'COUENV', 'NORMAL')
if '&result()' <> '0'
eval result = ItlErr('COUCOPY returned "&result()" installing COUENV.DLL.')
endif
eval result = rxCouAssociateAppFile('COUENV', +
'[remote]\DLL\COUENV.DLL', '[dll]\COUENV.DLL', 'AUTOUPDATE')
**** PTR 10021 start ****
eval result = rxCouCopy('&val({boot.drive})\OS2\DLL\COUCOPY.DLL', +
'[dll]COUCOPY.DLL', 'IMMEDIATE', 'COUCOPY', 'NORMAL')
if '&result()' <> '0'
eval result = ItlErr('COUCOPY returned "&result()" installing COUCOPY.DLL.')
endif
eval result = rxCouAssociateAppFile('COUCOPY', +
'[remote]\DLL\COUCOPY.DLL', '[dll]\COUCOPY.DLL', 'AUTOUPDATE')
**** PTR 10021 end ****
****** (9b) Other base client files.
coreinstdircheck &env(COU.SOURCEDR), &val(<diskroot>)&val(<diskclient>), +
COUINST_&val(<diskclient>), &val(<diskclient>)
if '&env(COU.ACCMETH)' = 'NETBIOS'
repstr <fileopendll>, COUILR.DLL
else
if '&env(COU.ACCMETH)' = 'NFS'
repstr <fileopendll>, COUNFS.DLL
else
repstr <fileopendll>, ?
endif
endif
copy &val(<diskroot>)&val(<diskclient>)\README, &val(<dirroot>)README
copy &val(<diskroot>)&val(<diskclient>)\&val(<filesyslevel>), +
&val(<dirsystem>)\&val(<filesyslevel>)
**** PTR 10021 start ****
coreinstunzip &val(<fileclientzip>), &val(<dirsystem>), OPENDOOR.EXE +
OPENDOOR.INF BACKOFF.EXE MAINT.EXE, +
-o, &val(<dirtemp>)
**** PTR 10021 end ****
coreinstunzip &val(<fileclientzip>), &val(<dirhelp>), OPENDOOR.HLP +
MAINT.HLP, -o, &val(<dirtemp>)
coreinstunzip &val(<fileclientzip>), &val(<dirdll>), NICK16.DLL, -o, +
&val(<dirtemp>)
if '&val(<fileopendll>)' <> '?'
coreinstunzip &val(<fileclientzip>), &val(<dirdll>), &val(<fileopendll>), +
-o, &val(<dirtemp>)
endif
* coreinstunzip &val(<fileclientzip>), &val({boot.drive})\OS2\BITMAP, +
* NETDOOR.BMP, -o
errormode halt
eval result = rxCouAssociateAppFile('&val(<prodid>)', +
'<dummy>', '[local]\&val(<filesyslevel>)', 'NORMAL')
eval result = rxCouAssociateAppFile('OPENDOOR', +
'[remote]\OPENDOOR\OPENDOOR.EXE', '[system]\OPENDOOR.EXE', 'AUTOUPDATE')
eval result = rxCouAssociateAppFile('OPENDOOR', +
'[remote]\OPENDOOR\OPENDOOR.INF', '[system]\OPENDOOR.INF', 'AUTOUPDATE')
eval result = rxCouAssociateAppFile('OPENDOOR', +
'[remote]\OPENDOOR\OPENDOOR.HLP', '[help]\OPENDOOR.HLP', 'AUTOUPDATE')
eval result = rxCouAssociateAppFile('OPENDOOR', +
'[remote]\DLL\NICK16.DLL', '[dll]\NICK16.DLL', 'AUTOUPDATE')
eval result = rxCouAssociateAppFile('&val(<prodid>)', +
'[remote]\BACKOFF.EXE', '[system]\BACKOFF.EXE', 'AUTOUPDATE')
eval result = rxCouAssociateAppFile('MAINT', +
'[remote]\MAINT.EXE', '[system]\MAINT.EXE', 'AUTOUPDATE')
eval result = rxCouAssociateAppFile('MAINT', +
'[remote]\MAINT.HLP', '[help]\MAINT.HLP', 'AUTOUPDATE')
* eval result = rxCouAssociateAppFile('&val(<prodid>)', +
* '<dummy>', '&val({boot.drive})\OS2\BITMAP\NETDOOR.BMP', 'NORMAL')
if '&val(<fileopendll>)' <> '?'
eval result = rxCouAssociateAppFile('OPENDOOR', +
'[remote]\OPENDOOR\&val(<fileopendll>)', '[dll]\&val(<fileopendll>)', 'AUTOUPDATE')
endif
* Reset fix log
del &val(<filefixlog>)
copy &val(<diskroot>)&val(<diskclient>)\timexec\timexec.adm, +
&val(<dirdata>), NEWONLY
copy &val(<diskroot>)&val(<diskclient>)\timexec\timexec.rmd, +
&val(<dirdata>), NEWONLY
****** (9c) (CD-ROM only) LCSF files
* if '&env(COU.ACCMETH)' = 'CD-ROM' & '&env(COU.INSTTYPE)' = 'CLIENT'
* repfile &env(COU.SOURCEDIR)UTIL\LCSF.EXE, &val(<direxe>)
* repfile &env(COU.SOURCEDIR)UTIL\LCSF.ICO, &val(<direxe>)
* repfile &env(COU.SOURCEDIR)UTIL\LCSFWAIT.EXE, &val(<direxe>)
* repfile &env(COU.SOURCEDIR)UTIL\DRVATTCH.EXE, &val(<direxe>)
* repfile &env(COU.SOURCEDIR)UTIL\DRVDETCH.EXE, &val(<direxe>)
* if &val({OS2VER}) >= 2.0
* repfile &env(COU.SOURCEDIR)UTIL\LCSF20.IFS, &val(<direxe>)
* repstr <lcsfifs>, LCSF20.IFS
* else
* repfile &env(COU.SOURCEDIR)UTIL\LCSF.IFS, &val(<direxe>)
* repstr <lcsfifs>, LCSF.IFS
* endif
* endif
****** (9d) (CMPVM only) CMPVM files
** (Only if specified, AND CM or CM/2 is installed.)
if ('&env(COU.CMPVM<1>)' = 'Y' & +
('&env(COU.CMDRIVE<1>)' <> '' | '&env(COU.CM2DRIVE<1>)' <> ''))
coreinstdircheck &env(COU.SOURCEDR), &val(<diskroot>)&val(<diskcmpvm>), +
COUINST_&val(<diskcmpvm>), &val(<diskcmpvm>)
if ('&env(COU.CM2DRIVE<1>)' <> '')
repstr <dircm>, &env(COU.CM2DRIVE)\CMLIB
else
repstr <dircm>, &env(COU.CMDRIVE)\CMLIB
endif
repstr <dirsourcepvm>, &val(<diskroot>)&val(<diskcmpvm>)
repstr <filepvmzip>, CMPVM.ZIP
repstr <filepvmexe>, ACS3EINI.EXE
repstr <filepvmdll>, ACSNTCA.DLL
repstr <filepvmcpt>, 65280.CPT
if &val({OS2VER}) < 2.0
if '&env(COU.CMCSD)' >= 6000
repstr <pvmdir>, ES
else
repstr <pvmdir>, 13
endif
else
if ('&env(COU.CM2DRIVE<1>)' <> '')
repstr <pvmdir>, CM2
else
repstr <pvmdir>, ES
endif
endif
eval 'ATTRIB -R &val(<dircm>)\&val(<filepvmexe>) >NUL 2>&1'
eval 'ATTRIB -R &val(<dircm>)\DLL\&val(<filepvmdll>) >NUL 2>&1'
eval 'ATTRIB -R &val(<dircm>)\&val(<filepvmcpt>) >NUL 2>&1'
coreinstunzip &val(<filepvmzip>), &val(<dircm>), 65280.CPT, -o, +
&val(<dirtemp>)
coreinstunzip &val(<filepvmzip>), &val(<dircm>), +
&val(<pvmdir>)\&val(<filepvmexe>), -o, &val(<dirtemp>)
coreinstunzip &val(<filepvmzip>), &val(<dircm>)\DLL, +
&val(<pvmdir>)\&val(<filepvmdll>), -o, &val(<dirtemp>)
eval 'ATTRIB +R &val(<dircm>)\&val(<filepvmexe>) >NUL 2>&1'
eval 'ATTRIB +R &val(<dircm>)\DLL\&val(<filepvmdll>) >NUL 2>&1'
addini &val(<fileini>), COREADDED, CMPVM, .\.\&val(<timestamp>)
endif
**** PTR 10142 start ****
****** (9e) Install RXUTILS.DLL locally
eval result = rxCouCopy('&val({boot.drive})\OS2\DLL\RXUTILS.DLL', +
'[dll]\RXUTILS.DLL', 'IMMEDIATE', 'RXUTILS', 'AUTOUPDATE')
**** PTR 10142 end ****
******************************************************************************
* Group/Folder creation *
******************************************************************************
synch 10
:INST-10
say
if &val({OS2VER}) >= 2.0
say Creating &val(<name>) folder...
else
say Creating &val(<name>) group...
endif
errormode continue
****** (10a/b) (2.0+ only) Create base folder & startup folder
if &val({OS2VER}) >= 2.0
errormode halt
addobj WPFolder, &val(<name>), <WP_DESKTOP>, +
OBJECTID=&val(<groupid>);+
TITLE=&val(<name>);+
ICONFILE=&val(<diricons>)&val(<prodid>).ICO;+
ICONPOS=18 70;+
ICONVIEWPOS=25 25 50 50;,U, TRYDEL
* ICONVIEW=NONGRID&val({comma})NORMAL;,U, TRYDEL
* BACKGROUND=NETDOOR.BMP;
sleep 2
errormode continue
addobj WPFolder, &val(<name>) Startup, &val(<groupid>), +
OBJECTID=<CORE_STARTUP_FOLDER>;+
TITLE=&val(<name>) Startup;+
ICONVIEW=NONGRID&val({comma})NORMAL;+
ICONFILE=&val(<diricons>)&val(<prodid>)AUTO.ICO;, U, TRYDEL
endif
****** (10g) Create README shadow (object on 1.3) and Welcome
if &val({OS2VER}) >= 2.0
addobj WPShadow, README, &val(<groupid>), +
OBJECTID=<CORE_APP_README>;+
SHADOWID=&val(<dirroot>)README;, R, TRYDEL
else
addp &val(<groupid>), README
TYPE=PM
EXE=&val({boot.drive})\OS2\E.EXE
PARAMS=&val(<dirroot>)README
eaddp
endif
repstr <namewelcome>, Welcome!
***** PTR 163 removed following line from object below. OS.2 2.0 treats
***** an explict statement of NO as YES. Defaulting to NO works.
***** NOAUTOCLOSE=NO;
if &val({OS2VER}) >= 2.0
addobj WPProgram, &val(<namewelcome>), <CORE_STARTUP_FOLDER>, +
OBJECTID=<NETDOORWELCOME>;+
EXENAME=&val(<dirrempath>)WELCOME.CMD;+
PARAMETERS=%;+
MINIMIZED=YES;+
PROGTYPE=WINDOWABLEVIO;, R, TRYDEL
else
addp &val(<groupid>), &val(<namewelcome>)
TYPE=VIOWINDOW
EXE=&val(<dirrempath>)WELCOME.CMD
PARAMS=&val(<dirroot>)README*&val(<name>)\&val(<namewelcome>)
eaddp
addini USER, PM_Autostart, &val(<name>)\&val(<namewelcome>), 1&val({null})
endif
*** PTR 10138 start ***
if '&env(COU.INSTCLASS)' = 'PRODUCT'
repstr <nameug>, &val(<name>) User's Guide
if &val({OS2VER}) >= 2.0
addobj WPProgram, &val(<nameug>), &val(<groupid>), +
OBJECTID=<NETDOORUG>;+
EXENAME=&val(<dirrempath>)READIBM2\READIBM.EXE;+
PARAMETERS=&val(<dirrempath>)BOOKS\COUUMSTR.BOO %;+
PROGTYPE=PM;, R, TRYDEL
else
addp &val(<groupid>), &val(<nameug>)
TYPE=PM
EXE=&val(<dirrempath>)READIBM2\READIBM.EXE
PARAMS=&val(<dirrempath>)BOOKS\COUUMSTR.BOO
eaddp
endif
endif
*** PTR 10138 end ***
****** (10c) Create Initialization entry
if &val({OS2VER}) >= 2.0
addobj WPProgram, &val(<nameinit>), &val(<groupid>), +
OBJECTID=<CORE_APP_&val(<fileinitid>)>;+
TITLE=&val(<nameinit>);+
EXENAME=&val(<dirsystem>)\&val(<fileinitexe>);+
PARAMETERS=%;+
STARTUPDIR=&val(<dirsystem>);+
PROGTYPE=&val(<fileinittype>);, R, TRYDEL
else
addp &val(<groupid>), &val(<nameinit>)
TYPE=&val(<fileinittype>)
EXE=&val(<dirsystem>)\&val(<fileinitexe>)
WORKDIR=&val(<dirsystem>)
eaddp
endif
addini &val(<fileini>), COREADDED, &val(<fileinitid>), +
&val(<catname>)\&val(<nameinit>)\&val(<timestamp>)
****** (10d) Create CATALOG entry
repstr <caname>, NetDoor Catalog
if &val({OS2VER}) >= 2.0
addobj WPProgram, &val(<caname>), &val(<groupid>), +
OBJECTID=<CORE_APP_CATALOG>;+
TITLE=&val(<caname>);+
EXENAME=&val(<fileaddexe>);+
PARAMETERS=%;+
ICONFILE=&val(<diricons>)CATALOG.ICO;+
PROGTYPE=PM;, R, TRYDEL
else
addp &val(<groupid>), &val(<caname>)
TYPE=PM
EXE=&val(<fileaddexe>)
eaddp
endif
addini &val(<fileini>), COREADDED, CATALOG, +
&val(<catname>)\&val(<caname>)\&val(<timestamp>)
****** (10e) Create MAINT entries
**** PTR 10021 start ****
if &val({OS2VER}) >= 2.0
addobj WPProgram, &val(<namemaintS>), &val(<groupid>), +
OBJECTID=<CORE_APP_MAINTS>;+
TITLE=&val(<namemaintS>);+
EXENAME=&val(<dirsystem>)\&val(<filemaintexe>);+
ICONFILE=&val(<diricons>)MAINTS.ICO;+
PARAMETERS=% /STATUS;+
PROGTYPE=PM;, R, TRYDEL
else
addp &val(<groupid>), &val(<namemaintS>)
TYPE=PM
EXE=&val(<dirsystem>)\&val(<filemaintexe>)
PARAMS=/STATUS
eaddp
endif
if &val({OS2VER}) >= 2.0
addobj WPProgram, &val(<namemaintO>), &val(<groupid>), +
OBJECTID=<CORE_APP_MAINTO>;+
TITLE=&val(<namemaintO>);+
EXENAME=&val(<dirsystem>)\&val(<filemaintexe>);+
ICONFILE=&val(<diricons>)MAINTO.ICO;+
PARAMETERS=% /OPTIONS;+
PROGTYPE=PM;, R, TRYDEL
else
addp &val(<groupid>), &val(<namemaintO>)
TYPE=PM
EXE=&val(<dirsystem>)\&val(<filemaintexe>)
PARAMS=/OPTIONS
eaddp
endif
**** PTR 10021 end ****
**** PTR 196 start ****
addini &val(<fileini>), COREADDED, MAINT, .\.\&val(<timestamp>)
addini &val(<fileini>), COREADDED, MAINTO, +
&val(<catname>)\&val(<namemaintO>)\&val(<timestamp>)
addini &val(<fileini>), COREADDED, MAINTS, +
&val(<catname>)\&val(<namemaintS>)\&val(<timestamp>)
**** PTR 196 end ****
****** (10f) (NETBIOS only) Create NEWPW entry
if '&env(COU.ACCMETH)' = 'NETBIOS'
repstr <newpw>, Change Password
if &val({OS2VER}) >= 2.0
addobj WPProgram, &val(<newpw>), &val(<groupid>), +
OBJECTID=<CORE_APP_NEWPW>;+
TITLE=&val(<newpw>);+
EXENAME=&val(<filenewpwexe>);+
PARAMETERS=%;+
ICONFILE=&val(<diricons>)NEWPW.ICO;+
PROGTYPE=PM;, R, TRYDEL
else
addp &val(<groupid>), &val(<newpw>)
TYPE=PM
EXE=&val(<filenewpwexe>)
eaddp
endif
addini &val(<fileini>), COREADDED, NEWPW, +
&val(<catname>)\&val(<newpw>)\&val(<timestamp>)
endif
**** PTR 10266 start ****
****** (10g) (Master SERVER & IMAGE server only ) Create DOORADM entry
****** repstr <dooradm>, NetDoor Administration
******* addobj WPProgram, &val(<newpw>), &val(<groupid>), +
if ('&val(<srvmaster>)' = 'Y') | ('&val(<srvtypeimage>)' = 'Y')
repstr <dooradm>, NetDoor Control Panel
if &val({OS2VER}) >= 2.0
addobj WPProgram, &val(<dooradm>), &val(<groupid>), +
OBJECTID=<CORE_APP_DOORADM>;+
TITLE=&val(<dooradm>);+
EXENAME=&val(<filedooradmexe>);+
PARAMETERS=%;+
PROGTYPE=PM;, R, TRYDEL
else
* DOORADM can't be created on 1.3 system - not supported.
endif
addini &val(<fileini>), COREADDED, DOORADM, +
&val(<catname>)\&val(<dooradm>)\&val(<timestamp>)
endif
**** PTR 10266 end ****
****** (10?) (CD-ROM only) Create LCSF entry
* if '&env(COU.ACCMETH)' = 'CD-ROM'
* repstr <lname>, LCSF
* if &val({OS2VER}) >= 2.0
* addobj WPProgram, &val(<lname>), &val(<groupid>), +
* OBJECTID=<CORE_APP_LCSF>;+
* EXENAME=&val(<direxe>)\LCSF.EXE;+
* ICONFILE=&val(<diricons>)LCSF.ICO;+
* PARAMETERS=/S10000 /I /U %;+
* STARTUPDIR=&val(<direxe>);+
* PROGTYPE=WINDOWABLEVIO;, R, TRYDEL
* else
* addp &val(<groupid>), &val(<lname>)
* TYPE=DEFAULT
* EXE=&val(<direxe>)\LCSF.EXE
* WORKDIR=&val(<direxe>)
* PARAMS=/S10000 /I /U
* eaddp
* endif
* addini &val(<fileini>), COREADDED, &val(<lname>), +
* &val(<catname>)\LCSF\&val(<timestamp>)
* endif
errormode halt
******************************************************************************
* Server file creation *
******************************************************************************
synch 11
:INST-11
if '&env(COU.INSTTYPE)' = 'SERVER'
say
say Installing server files...
****** (11a) Server files (image)
**** PTR 107 start ****
if '&val(<srvtypeimage>)' = 'Y'
repstr <count>, 1
repstr <disk>, &val(<disksrvimg1>)
:imageloop
coreinstdircheck &env(COU.SOURCEDR), &val(<diskroot>)&val(<disk>), +
COUINST_&val(<disk>), &val(<disk>)
say Installing NetDoor image from disk &val(<disk>)...
coreinstunzip IMAGE&val(<count>).ZIP, &val(<dirimage>), *.*, -o -d
eval result = &val(<count>) + 1
if &result() > &val(<disksrvimgN>)
goto imageloopexit
endif
repstr <count>, &result()
eval result = &val(<disk>) + 1
repstr <disk>, &result()
goto imageloop
:imageloopexit
**** PTR 107 end ****
repstr <fullserv>, &val(<dirimage>)\LOCAL\COMPLEX\&val(<fileservers>)
if '&val(<srvmaster>)' = 'Y'
say Creating &val(<fullserv>)...
else
say Copying &val(<fullserv>) from master...
endif
copy &env(COU.MASTERFILE), &val(<fullserv>)
endif
****** (11aa) Server files (data)
if '&val(<srvtypedata>)' = 'Y'
repstr <fullserv>, &val(<dircoudata>)\&val(<fileservers>)
if '&val(<srvmaster>)' = 'Y'
say Creating &val(<fullserv>)...
else
say Copying &val(<fullserv>) from master...
endif
copy &env(COU.MASTERFILE), &val(<fullserv>)
coreinstdircheck &env(COU.SOURCEDR), &val(<diskroot>)&val(<disksrvdata>), +
COUINST_&val(<disksrvdata>), &val(<disksrvdata>)
coreinstunzip &val(<filesrvzip>), &val(<dircoudata>), LUSACCT.EXE +
LUSACCTC.EXE, -o, &val(<dirtemp>)
endif
****** (11b) Server patches
****** (11c) (LS 1.x NETBIOS Server only) Install sample CFG file.
if '&env(COU.PROTOCOL.NETBIOS<1>)' = 'YES'
if '&env(COU.LSCSD)' < 6000
coreinstdircheck &env(COU.SOURCEDR), &val(<diskroot>)&val(<disksrvcfg>), +
COUINST_&val(<disksrvcfg>), &val(<disksrvcfg>)
if '&val(<srvtypeimage>)' = 'Y'
repstr <filecmcfg>, CORESRVS.CFG
else
repstr <filecmcfg>, CORESRVD.CFG
endif
say Installing sample Comm Mgr configuration file +
&val(<dircm>)\&val(<filecmcfg>)...
coreinstunzip &val(<filesrvzip>), &val(<dircm>), &val(<filecmcfg>), +
-o, &val(<dirtemp>)
endif
endif
****** (11d) Set up autoupdate entries for FIX program
if '&val(<srvtypedata>)' = 'Y'
eval result = rxCouAssociateAppFile('LUSACCT', +
'[remote]ADMTOOLS\LUSACCT.EXE', +
'&env(COU.DATADRIVE)\COUDATA\LUSACCT.EXE', 'AUTOUPDATE')
if '&result()' <> '0'
eval result = ItlErr('Error: Error registering LUSACCT.EXE.')
endif
eval result = rxCouAssociateAppFile('LUSACCT', +
'[remote]ADMTOOLS\LUSACCTC.EXE', +
'&env(COU.DATADRIVE)\COUDATA\LUSACCTC.EXE', 'AUTOUPDATE')
if '&result()' <> '0'
eval result = ItlErr('Error: Error registering LUSACCTC.EXE.')
endif
endif
endif
******************************************************************************
* Modify TIMEXEC.ADM (Data Server only) *
******************************************************************************
synch 12
:INST-12
if '&env(COU.INSTTYPE)' = 'SERVER'
say
say Modifying &val(<filetimeadm>)...
rf &val(<filetimeadm>)
eval result = SetComment('DESC', '&val(<prodid>) installation' date())
eval result = SetComment('SET', ';')
eval result = SetCurL('BOTTOM')
****** (12a - Add LUSACCT entries)
if '&val(<srvtypedata>)' = 'Y'
if '&env(COU.PROTOCOL.NETBIOS<1>)' = 'YES'
cmd * 0&val({comma})5&val({comma})10&val({comma})15&val({comma})20+
&val({comma})25&val({comma})30&val({comma})35&val({comma})40+
&val({comma})45&val({comma})50&val({comma})55 * * * * * +
detach &val(<dircoudata>)\LUSACCT.EXE &val(<dircoudata>) +
> &val(<dircoudata>)\LUSACCT.OUT 2>&1
else
remall LUSACCT.EXE
endif
if '&env(COU.PROTOCOL.NFS<1>)' = 'YES'
cmd * 1&val({comma})6&val({comma})11&val({comma})16&val({comma})21+
&val({comma})26&val({comma})31&val({comma})36&val({comma})41+
&val({comma})46&val({comma})51&val({comma})56 * * * * * +
detach &val(<dircoudata>)\LUSACCTC.EXE &val(<dircoudata>) +
> &val(<dircoudata>)\LUSACCTC.OUT 2>&1
else
remall LUSACCTC.EXE
endif
endif
****** (12b - Add SERVERS.COR replication entries)
* if '&val(<srvtypeimage>)' = 'Y'
* cmd * 0&val({comma})10&val({comma})20&val({comma})30&val({comma})40+
* &val({comma})50 * * * * * +
* should copy from master to image here, but NFS makes this a mess.
* endif
if '&val(<srvtypedata>)' = 'Y'
cmd * 1&val({comma})11&val({comma})21&val({comma})31&val({comma})41+
&val({comma})51 * * * * * +
detach REPLACE &val(<dirrempath>)LOCAL\COMPLEX\&val(<fileservers>) +
&val(<dircoudata>) /U > &val(<dircoudata>)\SERVCOPY.OUT 2>&1
endif
wf &val(<backupdir>), N=&val(<prodid>)
endif
******************************************************************************
* Create Alias, Access Profiles (NETBIOS Server only) *
******************************************************************************
synch 13
:INST-13
if '&env(COU.PROTOCOL.NETBIOS<1>)' = 'YES'
say
say Creating access permissions and aliases...
****** (13a) Set default ACP of none for all drives
coreinstcreateacp &env(COU.FATMAP<1>) &env(COU.HPFSMAP<1>), +
USERS GUESTS, N
****** (13a) Create alias for image, delete ACPs
if '&val(<srvtypeimage>)' = 'Y'
say Creating &val(<name>) alias...
coreinstcreatealias &env(COU.MACHNAME), &env(COU.ALIAS), &val(<dirimage>), +
&val(<name>) Image, STARTUP
coreinstdeleteacp &val(<dirimage>), TREE
eval result = left('&val(<dirimage>)', 2)
coreinstcreateacp &result(), USERS GUESTS, RXA
endif
****** (13b) Create alias for data, set ACPs
**** PTR 238 start ****
if ('&val(<srvtypedata>)' = 'Y') & ('&val(<tcpdatasrvonly>)' = 'N')
say Creating data alias...
if ('&env(COU.BKDC<1>)' <> 'Y')
coreinstcreatealias &env(COU.MACHNAME), &env(COU.DATARES), +
&val(<dircoudata>), &val(<name>) Data, STARTUP
endif
coreinstdeleteacp &val(<dircoudata>)
coreinstcreateacp &val(<dircoudata>), USERS GUESTS, RXA
endif
**** PTR 238 end ****
endif
******************************************************************************
* Modify EXPORTS file (NFS Server only) *
******************************************************************************
synch 13a
:INST-13a
if '&env(COU.PROTOCOL.NFS<1>)' = 'YES'
if '&env(COU.EXPORTS<1>)' <> ''
say
say Modifying &env(COU.EXPORTS) file...
rf &env(COU.EXPORTS)
eval Result = SetComment('SET', '*')
eval Result = SetComment('DESC', '&val(<prodid>) installation' date())
if '&val(<srvtypeimage>)' = 'Y'
cmd &val(<dirimage>) -ro, bottom
endif
if '&val(<srvtypedata>)' = 'Y'
cmd &val(<dircoudata>) -ro, bottom
endif
wf &val(<backupdir>), N=&val(<prodid>)
else
if '&val(<srvtypeimage>)' = 'Y'
repstr <expdirs>, &val(<dirimage>)
else
repstr <expdirs>,
endif
if '&val(<srvtypedata>)' = 'Y'
if '&val(<expdirs>)' <> ''
repstr <expdirs>, &val(<expdirs>)&val({comma})
endif
repstr <expdirs>, &val(<expdirs>) &val(<dircoudata>)
endif
coreinstmsgbox EXPORTS Configuration Required, The following directories +
need to be exported read-only for all users: &val(<expdirs>).
endif
endif
******************************************************************************
* Autostart Programs *
******************************************************************************
synch 14
:INST-14
errormode continue
****** (14a) Create autostart entry for program init
if '&env(COU.STARTUP)' = 'FOLDER'
if &val({OS2VER}) >= 2.0
addobj WPShadow, &val(<nameinit>), <WP_START>, +
OBJECTID=<COU_SHAD_COREINIT>;+
SHADOWID=<CORE_APP_&val(<fileinitid>)>;, R, TRYDEL
else
addini USER, PM_Autostart, &val(<name>)\&val(<nameinit>), 1&val({null})
endif
endif
****** (14b) (CD-ROM only) Create autostart entry for LCSF
* if '&env(COU.ACCMETH)' = 'CD-ROM'
* if &val({OS2VER}) >= 2.0
* addobj WPShadow, &val(<lname>), <WP_START>, +
* OBJECTID=<COU_SHAD_LCSF>;+
* SHADOWID=<CORE_APP_LCSF>;, R, TRYDEL
* endif
* endif
errormode halt
******************************************************************************
* Beta Cleanup Code *
******************************************************************************
synch 15
:INST-15
errormode continue
* Delete mangled DLL installation
eval rxDelete('&val(<dirdll>)\OUENV.DLL')
* Delete old log files
eval rxDelete('&val({boot.drive})\OS2\INSTALL\COU.LOG')
eval rxDelete('&val({boot.drive})\OS2\INSTALL\DOORWAY.LOG')
eval rxCouRemoveAppFile('COUENV', '&val({boot.drive})\OS2\DLL\COUENV.DLL')
if &val({OS2VER}) >= 2.0
eval Result = sysDestroyObject('<CORE_APP_COREUP>')
eval Result = sysDestroyObject('<CORE_APP_PMCOREUP>')
eval Result = sysDestroyObject('<CORE_APP_COREFIXO>')
eval Result = sysDestroyObject('<CORE_APP_COREFIXS>')
eval Result = sysDestroyObject('<CORE_APP_COREADD>')
else
delp &val(<name>), Open NetDoorway
delp &val(<name>), CORE Initialization
delp &val(<name>), Core Initialization
delp &val(<name>), NetDoor Initialization
delp &val(<name>), CoreFix Options
delp &val(<name>), CoreFix Status
delp &val(<name>), CoreAdd
if '&env(COU.INSTCLASS)' <> 'PRODUCT'
delp CORE, Open NetDoorway
delp CORE, CORE Initialization
delp CORE, Core Initialization
delp CORE, NetDoor Initialization
delp CORE, NetDoor Catalog
delp CORE, CoreFix Options
delp CORE, CoreFix Status
delp CORE, CoreAdd
delp CORE, README
delp CORE, Change Password
endif
endif
errormode halt
******************************************************************************
* Cleanup Code *
******************************************************************************
synch end
:end
coreinstdircheck &env(COU.SOURCEDR), &val(<diskroot>)&val(<diskfinal>), +
COUINST_&val(<diskfinal>), &val(<diskfinal>)
**** PTR 10024 start ****
* Delete old initialization code
eval rxCouDeleteAll('PmCoreUp', 'IMMEDIATE')
eval rxDelete('&val(<dirsystem>)\PMCOREUP.EXE')
eval rxDelete('&val(<dirsystem>)\PMCOREUP.INF')
eval rxDelete('&val(<dirsystem>)\PMCOREUP.HLP')
eval rxDelete('&val(<dirsystem>)\PMCOREUP.LOG')
eval rxDelete('&val(<dirsystem>)\PMCOREUP.BAK')
eval rxDelete('&val(<dirsystem>)\COREFIX.TMP')
eval rxDelete('&val(<dirdata>)\COREFIX.TMP')
eval rxDelete('&val(<dirsystem>)\COREFIX.LOG')
eval rxDelete('&val(<dirsystem>)\COREUP.CMD')
eval rxDelete('&val(<dirsystem>)\COREUP1.CMD')
eval rxDelete('&val(<dirsystem>)\COREUP.MAC')
eval rxDelete('&val(<dirsystem>)\CORE.MSG')
eval rxDelete('&val(<dirsystem>)\CORESTAT.CMD')
eval rxDelete('&val(<dirsystem>)\COREUP.ICO')
eval rxDelete('&val(<dirsystem>)\COREUP.INF')
eval rxDelete('&val(<dirsystem>)\OLDUP.CMD')
eval rxDelete('&val(<dirsystem>)\CORE.MSG')
eval rxDelete('&val(<dirsystem>)\CREQCFG.LOG')
eval rxDelete('&val(<dirsystem>)\SYSLEVEL.COR')
eval 'DEL &val(<dirsystem>)\CORELOG.* >>&env(COU.LOG) 2>&1'
**** PTR 10024 end ****
* Delete DLLs which are still locked now at next boot.
eval rxCouDelete('&val({boot.drive})\OS2\DLL\FCLDLGP.DLL', 'DEFERRED')
if &val({OS2VER}) <= 2.0
eval rxCouDelete('&val({boot.drive})\OS2\DLL\COUCOPY.DLL', 'DEFERRED')
eval rxCouDelete('&val({boot.drive})\OS2\DLL\RXUTILS.DLL', 'DEFERRED')
endif
if '&env(COU.INSTTYPE)' = 'SERVER'
if '&env(COU.PROTOCOL.NFS<1>)' = 'YES'
coreinstmsgbox Configuration Required, +
The NFS daemon (NFSD) must be set up to automatically start when +
the system is started. See your TCP/IP documentation for details.
coreinstmsgbox Configuration Required, +
In order to allow changes to the &val(<name>) environment to +
be copied to this server, the file &env(COU.EXPORTS) must be +
modified to allow Administrator's workstations to have read/write +
access to the &val(<dirimage>) directory.
if '&val(<srvmaster>)' = 'Y'
coreinstmsgbox Configuration Required, +
In order to make changes to the &val(<name>) environment +
remotely, the file &env(COU.EXPORTS) must be modified to allow +
Administrator's workstations to have read/write access to the +
&val(<dircoudata>) directory.
endif
endif
endif
say
say Configuration complete.
exit 0