home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-07-29 | 93.7 KB | 2,551 lines |
- ''/*********************************************************************
- ''
- '' Module Name: main.lss
- ''
- '' Module Code: TOOLKIT
- ''
- '' Author: Marcel Meth
- ''
- '' Creation Date: Aug 31, 1993
- ''
- '' Copyright Lotus Development Corporation, (c) 1991
- ''
- ''
- '' Description:
- '' Lotus script file for common install
- '' If you are trying to create an automated install, you need to
- '' remove or comment out the Calls that bring up dialogs and
- '' ensure that the symbols have valid values.
- '' See "AUTOMATE" comments throughout the code.
- '' You should be able to easily automate a simple COMPLETE install.
- ''
- '' SUGGESTION: You should be able to tailor an install to you users by
- '' having shell variables setup for them and using the
- '' the lotus script "ENVIRON$" variable.
- '' e.g. suppose the user has the following line in their autoexec.bat
- '' set NAME=Marcel
- '' then you can pick it up with:
- '' name$ = ENVIRON$("NAME")
- ''
- '' The following diagram illustrates the basic execution path(s)
- '' available in this script.
- ''
- '' InitInstall
- '' |
- '' WELCOME DIALOG (SYM_NAME$, SYM_COMPANY$, SYM_NETWORK$)
- '' |
- '' SERVERorDISTRIBUTION DIALOG (SYM_NETWORK$)
- '' |
- '' IF SMARTSUITE THEN SUITE DIR DIALOG (SYM_BASEDIR$)
- '' |
- '' SELECT based on SYM_NETWORK$
- '' |
- '' gSTANDARD--.....
- '' |
- '' gSERVER--.....
- '' |
- '' gNODE--.....
- '' |
- '' gDISTRIBUTION--.....
- ''
- '' The main Drive for all Installs
- ''
- '' Tabs: 3 (In Brief do tabs 4 7)
- ''
- '' Additional authors: Mariana Zgripcea, Dave Dupre,
- '' Thangarag Veerapan, Christopher Moy
- ''
- '' Change History:
- '' $Log: //CIT/VOL1/CFLOG/logfiles/cominst/toolkit/main___@.lss $
- ''
- '' Rev 1.222 19 Jul 1996 14:41:46 jdonohue
- '' Moved IncrementSharedDLLCount from main.lss to toolkit.lss
- ''
- '' Rev 1.221 11 Jul 1996 19:12:42 glutz
- '' Added SUB Lot_TurnOffNodeOptSections for cases where Suite does
- '' not surface the nodenodeoptions callback.
- ''
- '' Rev 1.220 11 Jul 1996 14:48:06 jdonohue
- '' Made sub IncrementSharedDLLCount Public
- ''
- '' Rev 1.219 11 Jul 1996 13:12:02 jdonohue
- '' Ref SPR: CDWT37FR6B
- '' Do not reset copy list for shared server system files, just set all sections off
- ''
- '' Rev 1.218 05 Jul 1996 10:35:10 dfristro
- '' Simplified SetTheBaseSymbol to remove redundancy. Also added check that
- '' the dir is writable when getting dir from registry.
- ''
- '' Rev 1.217 01 Jul 1996 15:37:56 jdonohue
- '' Detect whether shared windows system directory is writeable, not windows dir
- '' Set WINDIR, WINSYSDIR symbol values for shared windows server error dialog
- ''
- '' Rev 1.216 24 Jun 1996 15:51:46 jdonohue
- '' Ref SPR: RWIS36THFG
- '' Added function TurnOffSharedWinsysSections to prevent attempting to copy
- '' windows system files during a node install in a shared windows environment
- ''
- '' Rev 1.215 14 Jun 1996 16:42:10 jdonohue
- '' Added RebootLater Flag to indicate reboot required but deferred
- ''
- '' Rev 1.214 04 Jun 1996 12:13:46 glutz
- '' Changed call for Suite case from Lot_IsAnyNodeOptAvailToNode to
- '' Lot_AreAnyNodeOptionsAvail. SPR#AFOG366LGN
- ''
- '' Rev 1.213 16 May 1996 16:00:54 glutz
- '' Reset RemovePriorVersion buffer prior to calling PreCopyConfig.
- ''
- '' Rev 1.212 08 May 1996 16:05:04 schen
- '' fix automation install for Smartsuite.
- ''
- '' Rev 1.211 07 May 1996 10:15:00 glutz
- '' Rewrote logic for nodenodeoptions dialog.
- ''
- '' Rev 1.210 19 Apr 1996 11:55:00 jdonohue
- '' Fixed error evaluating Lot_IsDirWritable return (NOT Script TRUE/FALSE)
- ''
- '' Rev 1.209 10 Apr 1996 17:09:14 jdonohue
- '' Ref SPR: AGAO33XJT3
- '' Changed DetectSharedWindows logic to silently install server files if allowed
- ''
- '' Rev 1.208 05 Apr 1996 14:23:36 jdonohue
- '' Use new function FGetSectionFileList to get shared DLL filenames even if they
- '' have been renamed in the .INF file
- ''
- '' Rev 1.207 04 Apr 1996 21:49:00 glutz
- '' The nodenodeoptions dialog only pops up if there are options
- '' available for the selected products.
- ''
- '' Rev 1.206 04 Apr 1996 16:28:44 jdonohue
- '' Moved IncrementSharedDLLCount and Lot_DoSharedDLLs from inst.lss to main.lss
- '' since inst PostConfig processing not done for node since install not copied
- ''
- '' Rev 1.205 02 Apr 1996 11:49:36 jdonohue
- '' Call product INIT functions for server install before determining language install
- ''
- '' Rev 1.204 01 Apr 1996 08:25:56 jdonohue
- '' Moved function OneUp to toolkit.lss, made global
- '' Added call to Lot_FixupLanguageDirectories
- '' Rearranged code for determination of server language install
- ''
- '' Rev 1.203 20 Mar 1996 12:35:58 jdonohue
- '' Added function Lot_SetLotusFontsDir called after ResetWinWinSysSymbols
- ''
- '' Rev 1.202 19 Mar 1996 18:08:30 schen
- '' fix for Automate addiconoptions for server and node install.
- ''
- '' Rev 1.201 18 Mar 1996 13:12:26 jdonohue
- '' Ref SPR:LSCR32TQHP
- '' Use IsNewShell instead of WhatPlatform for determination of LOTUSFONTS directory
- ''
- '' Rev 1.200 06 Mar 1996 12:53:54 jdonohue
- '' Ref SPR: JMOY332R5H
- '' For low disk space on server install, loop back to server customize dialog if
- '' customize chosen
- ''
- '' Rev 1.199 05 Mar 1996 14:55:14 jdonohue
- '' Set the default basedir to value in HCU "User Path" for node, check if dir exists
- '' Added function OneUp to strip last path component
- ''
- '' Rev 1.198 04 Mar 1996 08:31:56 jdonohue
- '' Remove 16 bit shared component support -- pass 1 : eliminate LOTUSAPP
- ''
- '' Rev 1.197 29 Feb 1996 13:38:10 jdonohue
- '' Move the Lot_DoServerSharedWindows function call AFTER writng features to
- '' cinstall.ini
- ''
- '' Rev 1.196 29 Feb 1996 07:57:28 jdonohue
- '' Ref SPR: JMOY332R5H
- '' Changed main.lss logic to return to the customize dialog when space is
- '' insufficient if you chose customize the first time
- ''
- '' Rev 1.195 25 Jan 1996 16:16:58 jdonohue
- '' Set Windows directory to point to server for shared windows install, which is
- '' assumed to be the parent of the Windows System Directory
- ''
- '' Rev 1.194 24 Jan 1996 11:10:58 jdonohue
- '' Ref SPR: JHOH325K2M
- '' Fixed logic error in shared windows detection
- ''
- '' Rev 1.193 23 Jan 1996 16:08:58 cmoy
- '' HISHI: Merged FE changes
- ''
- '' Rev 1.192 18 Jan 1996 11:09:42 schen
- '' BUG fix for default install addicon
- ''
- '' Rev 1.191 17 Jan 1996 16:57:32 schen
- '' Add Addicon key word in Automate install.
- ''
- '' Rev 1.190 17 Jan 1996 13:50:32 jdonohue
- '' Added support for server installation to a shared windows location -- new functions:
- '' Lot_DoServerSharedWindows installs system files on shared server windows location
- '' Lot_DetectSharedWindows detects a shared window system and if writeable sets flag
- ''
- '' Rev 1.189 15 Jan 1996 15:06:34 jdonohue
- '' Added function Lot_DetectSharedWindows to detect shared windows server install
- '' and present UI for confirmation (NOTE: this is not fully functional as yet!!,
- '' placeholder for now)
- ''
- '' Rev 1.188 04 Jan 1996 14:55:20 jdonohue
- '' Ref SPR: KHAN2XZUGU
- '' Don't exit if LOTUSAPP directory doesn't exist -- there is no need to create
- '' one if only 32 bit products are installed
- ''
- '' Rev 1.187 29 Dec 1995 08:49:30 jdonohue
- '' Added function InitStickyCopyList which preserves user choices on customize
- ''
- '' Rev 1.186 22 Dec 1995 10:13:22 jdonohue
- '' Removed all references to SYM_PARENTDIR$ -- is now SYM_BASEDIR$ for all
- ''
- '' Rev 1.185 11 Dec 1995 13:59:46 jdonohue
- '' Replaced call to RefreshLanguageSourceDirectories with call to
- '' Lot_FixupSourceDirectories
- ''
- '' Rev 1.184 08 Nov 1995 16:57:34 tveerapp
- '' Fixes fot SPR#RMOO2xQQDY
- ''
- '' Rev 1.183 25 Oct 1995 08:47:14 glutz
- '' SYM_PARENTDIR was not always getting set.
- ''
- '' Rev 1.182 Oct 24 1995 16:55:34 cmoy
- '' removed eof char
- ''
- '' Rev 1.181 24 Oct 1995 12:28:28 jdonohue
- '' Fixed handling of suite server MLC case
- ''
- '' Rev 1.180 24 Oct 1995 11:59:02 glutz
- '' SetTheBaseSymbol sets SYM_BASE16DIR.
- ''
- '' Rev 1.179 23 Oct 1995 16:36:48 tveerapp
- '' Fixed spr# LSCR2X6MUC. Call product UI functions for automation.
- ''
- '' Rev 1.178 19 Oct 1995 14:54:52 jdonohue
- '' Don't use ".." in resetting SYM_STF_SRCDIR$ for server language install
- ''
- '' Rev 1.177 18 Oct 1995 18:02:36 amontalv
- '' Commented out code to check priviledge level.
- ''
- '' Rev 1.176 17 Oct 1995 16:08:28 jdonohue
- '' Changed logic for COMPONENTSDIR and LOTUSAPPDIR defaults from cinstall.ini
- ''
- '' Rev 1.175 17 Oct 1995 13:14:54 jdonohue
- '' Fixed wrong ini section reference, moved dialog code
- ''
- '' Rev 1.174 13 Oct 1995 14:43:56 jdonohue
- '' Added call to Lot_RefreshLocalComponentDir
- ''
- '' Rev 1.173 03 Oct 1995 16:42:18 tveerapp
- '' Fixed spr#TVEN2WNS5V. Removed the conditional check for calling into the
- '' product UI functions only during custom install. Lot_CallProductFunctions(UI)
- '' will now be called for all types of installs (default,min and custom). This
- '' check was removed from case gSTANDARD and case gSERVER.
- ''
- '' Rev 1.172 27 Sep 1995 17:03:42 jdonohue
- '' Set server defaults for LOTUSAPPDIR and COMPONENTSDIR in cinstall.ini found
- ''
- '' Rev 1.171 27 Sep 1995 14:48:02 jdonohue
- '' Language install message always based on SYM_REG_PRODUCTNAME$ (prod #1)
- '' Set SYM_INSTALLKINDS$ as well as SYM_INSTALLKIND$
- ''
- '' Rev 1.170 26 Sep 1995 16:10:12 jdonohue
- '' For suite language install, dialog says "smart Suite" in product field
- '' Fixed error on server/language install
- ''
- '' Rev 1.169 25 Sep 1995 15:29:38 jdonohue
- '' Call all product functions for InitLanguage
- ''
- '' Rev 1.168 21 Sep 1995 16:22:00 jdonohue
- '' Moved resetting of gINSTALLINI$ for output after reading of cinstall.ini file
- ''
- '' Rev 1.167 21 Sep 1995 12:28:34 jdonohue
- '' Don't reset gINSTALLINI$ for server language install
- ''
- '' Rev 1.166 13 Sep 1995 14:47:22 tveerapp
- '' Fixed the logic in SetTheBase. The registry is read only for a std./node
- '' installs.
- ''
- '' Rev 1.165 13 Sep 1995 14:44:46 jdonohue
- '' Moved check for server language install
- ''
- '' Rev 1.164 12 Sep 1995 13:21:38 jdonohue
- '' Popup message for server language install
- ''
- '' Rev 1.163 12 Sep 1995 10:53:14 tveerapp
- '' Added Lo_SaveFeaturesInInstNodeIni() for a node install. This records
- '' uinstall information in cinstnod.ini
- ''
- '' Rev 1.162 08 Sep 1995 16:56:02 tveerapp
- '' Fixed spr#KHAN2VUQVY,the change is in SetTheBase for automation.
- ''
- '' Rev 1.161 07 Sep 1995 14:51:54 tveerapp
- '' Moved the setting of INSTDIR duringa language server install to Inst.lss
- '' to fix spr#WEDS2VNRDZ
- ''
- '' Rev 1.160 02 Sep 1995 15:29:50 amontalv
- '' Added check at beginning, right after initialization to determine if we have
- '' enough priviledges to install.
- ''
- '' Rev 1.159 31 Aug 1995 11:42:50 jdonohue
- '' Added code to check that the parent directory obtained from the registry is
- '' a valid drive, and if not, uses default
- ''
- '' Rev 1.158 22 Aug 1995 16:13:46 tveerapp
- '' For a standalone and node language installs don not reset the product symbols
- '' during automation.
- ''
- '' Rev 1.157 22 Aug 1995 13:52:42 jdonohue
- '' SetBaseSymbols now looks in registry under ..\lotus\Components for default
- ''
- '' Rev 1.156 17 Aug 1995 14:53:26 jdonohue
- '' Added functions to recognize and handle node install from secondary server
- '' language
- ''
- '' Rev 1.155 17 Aug 1995 14:36:28 callanan
- '' Set the bitmap display mode for billboards
- ''
- '' Rev 1.154 17 Aug 1995 14:03:22 callanan
- '' Changed the default way to handle bitmaps in dialogs
- ''
- '' Rev 1.153 15 Aug 1995 16:40:16 mmeth
- '' Part 2 of SPR# RMOO2UPTZD
- '' In SUB ConfigureAUTOEXEC I have added a check as to which dialog should be
- '' posted. If there were files marked "SYSTEM", that were busy, then
- '' I send a message to the install.exe's window to reboot.
- '' This of course is only true, if the user chooses to reebot.
- ''
- '' Rev 1.152 15 Aug 1995 07:53:04 jdonohue
- '' For a node install, if main product and install directories differ, sets
- '' main directory to parent of install (secondary language install)
- ''
- '' Rev 1.151 14 Aug 1995 11:32:12 jdonohue
- '' Added code to handle server language install
- ''
- '' Rev 1.150 14 Aug 1995 10:48:02 callanan
- '' Modify SYM_CUSTOM$ to keep track of where we are in install, to decide how we display bitmaps in dialogs
- ''
- '' Rev 1.149 09 Aug 1995 13:48:06 callanan
- '' Created global SYM_CUST which keeps track of when we are in the Custom dialog
- '' so we can display bitmaps correctly.
- ''
- '' Rev 1.148 04 Aug 1995 14:54:26 amontalv
- '' Added quotes around the directory name in the lsirun like written to install.lst
- ''
- '' Rev 1.147 02 Aug 1995 17:45:26 tveerapp
- '' Added Lot_AutoSetSrvOptions to gSERVER.
- ''
- '' Rev 1.146 02 Aug 1995 16:28:04 jdonohue
- '' Changed calling method for InitLanguage
- ''
- '' Rev 1.145 27 Jul 1995 15:47:00 glutz
- '' Took out some print statements.
- ''
- '' Rev 1.144 27 Jul 1995 13:33:28 glutz
- '' Added cost of unc files to NumberOfBytesPerBillbd.
- ''
- '' Rev 1.143 27 Jul 1995 10:11:16 amontalv
- '' Put a check for the new shell around the CreateProgmanGroup call -- all three
- '' of them.
- ''
- '' Rev 1.142 10 Jul 1995 14:33:06 glutz
- '' If CheckForSpace fails return to Select Parent dir dialog.
- ''
- '' Rev 1.141 07 Jul 1995 16:47:32 mzgripce
- '' if lotusappdir is deleted before the node install put an error and exit
- ''
- '' Rev 1.140 28 Jun 1995 11:42:28 tveerapp
- '' Added check to customize shared components for a custom install only.
- ''
- '' Rev 1.139 22 Jun 1995 15:34:16 tveerapp
- '' Added logic to Welcome code.Install ends when the welcome dialogs returns
- '' gBACK$.
- ''
- '' Rev 1.138 21 Jun 1995 20:21:16 amontalv
- '' Attempt to get User name and Company from 4 different places. The original, from
- '' the Windows registry entry for Windows, the Windows registry location for Windows NT
- '' and using GetUserName as last resort.
- ''
- '' Rev 1.137 21 Jun 1995 11:33:36 tveerapp
- '' When an STFQUIT error is raised, check for automation by getting the
- '' SYM_AUTOMATIONINST value. Script does not store the automation$ variable's
- '' value.
- ''
- '' Rev 1.136 20 Jun 1995 13:48:24 tveerapp
- '' Changed the call from Lot_AutoGetProgramGroup to Lot_GetProgramGroupOrFolder
- ''
- '' Rev 1.135 19 Jun 1995 17:10:30 tveerapp
- '' During automation allow the defaultreg function to be called for the
- '' 1st product(similar to the regular install).
- '' Should fix spr#KHAN2T2PCQ.
- ''
- '' Rev 1.134 12 Jun 1995 12:46:12 amontalv
- '' Added code to Server and node to display folder instead of program group if
- '' on Win95. The code doesn't completely work yet as I'm waiting for some UI
- '' issues to be worked out
- ''
- '' Rev 1.133 08 Jun 1995 17:08:58 tveerapp
- '' Fixed spr# CCOL2NULJ2. Moved the AutoGetProductDestDir function after
- '' smartsuite appselection for a standard and node install.
- ''
- '' Rev 1.132 08 Jun 1995 12:33:02 tveerapp
- '' Modified ConfigureAUTOEXEC. The autoexec modification code has been remmed
- '' out. This sub routine now brings up only the success dilaog.
- '' This should fix spr#KHAN2SKKQZ.
- ''
- '' Rev 1.131 07 Jun 1995 16:30:22 amontalv
- '' Changed the Win95 start folder so that it initializes
- '' earlier in the program. This should make automation
- '' easier to implement for it. There are still a couple of
- '' bugs that I need to work out, but I feel that I should
- '' check what I have now.
- ''
- '' Rev 1.130 06 Jun 1995 15:53:30 amontalv
- '' We are experiencing problems with LotusScript when we fill buffers with
- '' nulls and then pass them to C routines. For the time being, it is suggested
- '' that we fill our buffers with spaces. To this end (and to make it
- '' easier to change back later) I have created a small LotusScript routine
- '' named CreateBuffer. You use it any time you ordinarily would use
- '' STRING$(num, 0). CreateBuffer() just needs the num, it decides what to
- '' fill the buffer with (sorry about the grammer). Right now it fill the
- '' buffer with spaces. Later we will change it back to nulls. Also look
- '' at the routine NullTrim(). It will get rid of final nulls and spaces.
- '' You can use this when getting a buffer that has been changed or filled
- '' in a external C routine.
- ''
- '' Rev 1.129 05 Jun 1995 18:11:54 tveerapp
- '' Changed AutoSetPArentCompDirs to AutoSetParentDir
- ''
- '' Rev 1.128 05 Jun 1995 16:37:12 amontalv
- '' Made changes for migrating to LotusScript version 3.0.37.
- ''
- '' Rev 1.127 01 Jun 1995 11:11:34 amontalv
- '' Added API function CreateLink to create shortcuts. Also added functions
- '' to save and get the link path to support the CreateLink. I also changed
- '' the startup program folder code to use the default dialog proc and changed
- '' the default dialog proc to process directory trees.
- ''
- '' Rev 1.126 30 May 1995 15:42:34 amontalv
- '' Made a new function PopupWithFunction. PopupModalDlg now calls this. Needed to
- '' do this to call dialog with my own dialog function.
- ''
- '' Rev 1.125 30 May 1995 09:25:28 amontalv
- '' Added back my changes. Had not made changes to setupapi.lss to declare
- '' functions.
- ''
- '' Rev 1.124 26 May 1995 14:36:44 cmoy
- '' rolled back Andy's changes to revision 1.122
- ''
- '' Rev 1.122 22 May 1995 23:32:20 amontalv
- '' Added browse for Win 95 program folder.
- ''
- '' Rev 1.121 22 May 1995 09:28:22 mzgripce
- '' remove the function IsLotusappPromptNeeded() and the calls to it and remove
- '' the tags NODEPROMPTLOTUSAPP: STDSUITPROMPTLOTUSAPP: AND STDPROMPTLOTUSAPP
- '' FIXING THE GOTOs TO THEM
- ''
- '' Rev 1.120 18 May 1995 12:17:36 tveerapp
- '' Added call AutoSetParentCompDirs inside SetTheBaseSymbol for a single
- '' product automated install.
- ''
- '' Rev 1.119 18 May 1995 12:07:26 mzgripce
- '' set default for baseDir to lotus and remove initlang... and use language
- ''
- '' Rev 1.118 18 May 1995 09:54:48 mzgripce
- '' display userUI in server install only in customize case.
- ''
- '' Rev 1.117 17 May 1995 17:56:26 mzgripce
- '' display user UI only in customize for standalone install
- ''
- '' Rev 1.116 17 May 1995 08:54:12 jdonohue
- '' Added call to InitLanguage
- ''
- '' Rev 1.115 16 May 1995 13:45:30 mzgripce
- '' initialize SYM_PARENDIR and call PARENTDIRCB
- ''
- '' Rev 1.114 16 May 1995 12:56:32 tveerapp
- '' Resourced the log file strings.
- ''
- '' Rev 1.113 16 May 1995 12:39:00 tveerapp
- '' Added End of log file .
- ''
- '' Rev 1.112 15 May 1995 17:34:26 tveerapp
- '' Fixed gSERVER. For an automated server install do not process the individual
- '' product directories.
- ''
- '' Rev 1.111 15 May 1995 11:18:12 jdonohue
- '' Moved SetUpApi call to toolkit
- ''
- '' Rev 1.110 11 May 1995 17:26:52 tveerapp
- '' Commented out the gLOgFile$ setting in InitInstall.
- ''
- '' Rev 1.109 11 May 1995 14:51:50 tveerapp
- '' Added Status logging. Modified InitInstall.
- ''
- '' Rev 1.108 03 May 1995 18:12:24 mzgripce
- '' change cursor% to cursor& in one instance
- ''
- '' Rev 1.107 03 May 1995 12:00:38 tveerapp
- '' Fixed cfbuild-c2build merge.
- ''
- '' Rev 1.106 02 May 1995 12:52:54 cmoy
- '' Merged c2 into cf build
- ''
- '' Rev 1.104 28 Apr 1995 15:57:44 mheerman
- '' Commented out the select program manager group dialog.
- '' Rev 1.103 26 Apr 1995 09:54:24 tveerapp
- '' Added Customization during automation for a server install.
- ''
- '' Rev 1.102 25 Apr 1995 11:52:52 tveerapp
- '' Added Automation Customization to case gSTANDARD.
- ''
- '' Rev 1.103 10 Apr 1995 17:52:18 amontalv
- '' Changed code that removed null termination and trimmed spaces. There
- '' is no longer any null termination to Script text gotten from C calls
- '' Rev 1.101 06 Apr 1995 14:51:26 cmoy
- '' No change.
- ''
- '' Rev 1.102 07 Apr 1995 15:04:24 mzgripce
- ''
- '' Rev 1.100 05 Apr 1995 19:53:30 amontalv
- '' Porting to 32 bit.
- ''
- '' Rev 1.99 16 Mar 1995 09:58:14 mhishinu
- '' No change.
- ''
- '' Rev 1.98 22 Feb 1995 02:29:06 cmoy
- '' No change.
- ''
- '' Rev 1.97 02 Feb 1995 14:29:34 cmoy
- ''
- '' Thangaraj fixed Pipeline Problem
- ''
- '' Rev 1.96 01 Feb 1995 17:51:18 tveerapp
- ''
- '' Added the call to process Node Options for suite in NODENODEOPTIONS (for suite).
- ''
- '' Rev 1.95 19 Jan 1995 12:30:20 tveerapp
- ''
- '' Fixed the lotusapp/node install problem when the product does not support
- '' lotusapp processing.
- ''
- '' Rev 1.94 09 Jan 1995 10:12:00 tveerapp
- ''
- '' Fixed STFQUIT problem.Added UIPopAll before ending execution.
- ''
- '' Rev 1.93 29 Dec 1994 11:58:32 tveerapp
- ''
- '' Commented out the call to reboot during automation.
- ''
- '' Rev 1.92 29 Dec 1994 11:11:06 tveerapp
- ''
- '' Added the bitmap and new dialog for automation.
- ''
- '' Rev 1.91 23 Dec 1994 14:14:50 jplump
- ''
- '' Added call to Lot_AutoGetSetLicenserInfo
- '' Removed print statement
- ''
- '' Rev 1.90 22 Dec 1994 15:07:00 tveerapp
- ''
- '' Clean up print statements
- ''
- '' Rev 1.89 21 Dec 1994 17:10:22 tveerapp
- ''
- '' Added node options processing for an automated node install in case gNODE.
- ''
- '' Rev 1.88 21 Dec 1994 15:01:28 tveerapp
- ''
- '' Fixed the return value type on line 1423
- ''
- '' Rev 1.87 21 Dec 1994 13:55:36 tveerapp
- ''
- '' Added Suite App selection processing to STANDARD,SERVER and NODE.
- ''
- '' Rev 1.86 21 Dec 1994 12:15:54 tveerapp
- ''
- '' Modified SetTheBaseSymbol to add the check for a suite install.
- ''
- '' Rev 1.85 21 Dec 1994 12:03:50 tveerapp
- ''
- '' Added automation code to SetTheBaseSymbol.Uses response file base during automation.
- ''
- '' Rev 1.84 12 Dec 1994 13:22:36 tveerapp
- ''
- '' Added ResetWinWinsys call to case gSERVER$ for a server install
- '' to determine the win winsysdir symbols correctly.
- ''
- '' Rev 1.83 12 Dec 1994 13:20:00 tveerapp
- '' Added %s to lsirun cmd line modification.This is to account for
- '' the new automation command line arguments.
- ''
- '' Rev 1.82 12 Dec 1994 11:49:10 mzgripce
- ''
- '' Use the SQL and Paradox Auto symbols
- ''
- '' Rev 1.81 08 Dec 1994 20:14:24 jplump
- ''
- '' Added call to Lot_AutoWriteOutDebugFile
- ''
- '' Rev 1.80 06 Dec 1994 17:17:28 tveerapp
- '' Added automation processing to case gDISTRIBUTION$.
- '' Added response file processing from the command line (shell).
- ''
- '' Rev 1.79 06 Dec 1994 12:16:18 tveerapp
- '' Added Automation code to cases gSERVER$ and gNODE$.
- ''
- '' Rev 1.78 06 Dec 1994 10:21:38 tveerapp
- '' Added Lot_AutoConfigure and AutoInstallReboot calls.
- ''
- '' Rev 1.77 05 Dec 1994 16:51:44 tveerapp
- '' Added call to Lot_AutoGetUserInfo.
- ''
- '' Rev 1.76 02 Dec 1994 16:52:50 cmoy
- '' merged automation files
- ''
- '' Rev 1.75 18 Nov 1994 16:13:02 amontalv
- '' Japan DBCS: Added some resources to
- ''
- '' Rev 1.8 01 Dec 1994 17:23:14 tveerapp
- '' Added AutoCheckForSpace function.
- ''
- '' Rev 1.7 29 Nov 1994 12:49:12 tveerapp
- ''
- '' Changed the return value of Lot_AutoGetSizeOfInstall to be an integer.
- ''
- '' Rev 1.6 29 Nov 1994 11:43:52 jplump
- ''
- '' Added automation$, changed return type for Lot_AutoGetProgramGroup
- ''
- '' Rev 1.4 28 Nov 1994 15:52:46 tveerapp
- '' Added Lot_AutoGetSizeofInstall and other automation code for the standalone
- '' install.D
- ''
- '' Rev 1.3 23 Nov 1994 17:03:32 tveerapp
- ''
- '' Added automation logic to the Init Symbol processor.
- ''
- '' Rev 1.2 23 Nov 1994 16:22:56 tveerapp
- ''
- '' Added Lot_AutoGetInstallType to InitInstall. Added code to bring up
- '' a modeless dialog during automation.
- ''
- '' Rev 1.1 23 Nov 1994 14:50:40 tveerapp
- '' Added Automation code to InitInstall and called the auto init function.
- '' Also identified some of the changes to be made.
- ''==========
- ''
- '' Rev 1.74 02 Aug 1994 16:34:40 mzgripce
- '' No change.
- ''
- '' Rev 1.73 01 Aug 1994 10:27:00 cmoy
- '' No change.
- ''
- '' Rev 1.72 29 Jun 1994 10:54:18 thangv
- '' Moved the SYM_NETLOTUSAPP setting to inside the if statement (798,807).
- '' This was previously outside. The code is in NETLOTUSAPP processing. This
- '' should fix spr#31726.
- ''
- '' Rev 1.71 24 Jun 1994 11:10:38 thangv
- '' Moved the call to Initialize the product copylists during a node install
- '' to after the NODESSSAPPSEL dialog (smart suite dialog). The new lines are
- '' 729-733. This should fix the suite bug for node install when the user
- '' deselects apps but still gets them installed. The call was in the right pla
- '' for the std and server.
- ''
- '' Rev 1.70 03 Jun 1994 12:18:32 cmoy
- ''
- '' substituted CreateProgmanGroup for ProgmanManageGroup
- ''
- '' Rev 1.69 02 Jun 1994 12:30:48 thangv
- '' Added code to process sys.admin.mapping for node install.
- ''
- '' Rev 1.68 31 May 1994 13:55:38 thangv
- '' Added restore cursor before CheckForSpace(in case node)and Showwait
- '' cursor after Checkfor space.
- ''
- '' Rev 1.67 31 May 1994 13:40:44 mmeth
- '' Added Function Calls for Suite to handle previous versions
- ''
- '' Rev 1.66 26 May 1994 18:40:06 cmoy
- ''
- '' Replaced CreateProgmanGroup and ShowProgmanGroup with ProgmanManageGroup
- '' so that accented characters may be used.
- ''
- '' Rev 1.65 26 May 1994 17:35:12 thangv
- ''
- '' Fixed the back link from SRVUI to SRVNODEOPTIONS (it was SRVDATALENS before
- ''
- '' Rev 1.64 25 May 1994 16:12:38 thangv
- '' Moved CheckForSpace after share is processed for node. This fixes
- '' the node install running out of space bug.
- ''
- '' Rev 1.63 17 May 1994 10:59:20 thangv
- '' Moved stdlotusappprompt to before stdcustomize.
- ''
- '' Rev 1.62 13 May 1994 12:13:32 thangv
- '' Changed the 2nd arg to ShowProgmanGroup to 1.(it is not minimized).
- ''
- '' Rev 1.61 11 May 1994 12:35:06 thangv
- '' Moved Showwaitcursor for the node further up before copying files.
- ''
- '' Rev 1.60 11 May 1994 11:11:06 thangv
- '' Bring up DB_PLESEWAIT twice (for std, server) and bring it up for node.
- '' Re-arranged Lot_CallPostCopyConifg(std,server,node).
- '' Added plese wait foe node install.
- ''
- '' Rev 1.59 11 May 1994 10:31:40 mzgripce
- '' sprs 29300 and 29280 (DoDatalens)
- ''
- '' Rev 1.58 06 May 1994 14:15:20 mzgripce
- '' send the prognam name to the addicons
- ''
- '' Rev 1.57 05 May 1994 15:51:02 thangv
- ''
- '' Fixed the prev. link from the SSAPPSEL.
- ''
- '' Rev 1.56 03 May 1994 11:09:06 mmeth
- '' Added back Confirm Dialog
- ''
- '' Rev 1.55 02 May 1994 18:56:30 mzgripce
- ''
- '' put the addIconsXXX as its own call
- ''
- '' Rev 1.54 02 May 1994 14:52:42 cmoy
- ''
- '' modified SUB AUTOEXECCONFIG to deal with different versions of windows.
- ''
- '' Rev 1.52 02 May 1994 13:58:22 thangv
- '' Added ResetCopyList calls.
- ''
- '' Rev 1.51 28 Apr 1994 18:33:42 cmoy
- '' Changed Lot_CallProductFunctions(billboards) to Lot_CallOneProductFunction
- '' (billboards)
- '' modified NumberOfBytesinBillboard to only check first product.
- ''
- '' Rev 1.50 26 Apr 1994 11:16:38 mzgripce
- ''
- '' enable previous from consolidation in node
- ''
- '' Rev 1.49 25 Apr 1994 17:32:36 cmoy
- ''
- '' Moved LAUNCHNAG so that it comes up after DB_DISKCOPYMETHOD dialog.
- ''
- '' Rev 1.48 25 Apr 1994 15:42:16 cmoy
- '' reset the base distribution directory to lotusdis\
- '' in SUB SetTheBaseSymbol
- '' main calls SetTheBaseSymbol after the DB_DISKCOPYMETHOD dialog
- '' instead of before it now.
- ''
- '' Rev 1.47 22 Apr 1994 14:34:14 mzgripce
- ''
- '' set direction to back if consolidation returns back
- ''
- '' Rev 1.46 20 Apr 1994 16:22:06 mzgripce
- '' initialize SYM_DOSMAXPATHDIFF$
- ''
- '' Rev 1.45 20 Apr 1994 12:44:26 thangv
- '' Added the check AND app_flag<> FALSE to SRVNODEOPTIONS.
- '' When everything is unselected.
- ''
- '' Rev 1.44 19 Apr 1994 17:02:24 thangv
- '' Added code to fix the bug if all the products are
- '' deselected in ss dialogs in the case of standalone and
- '' server install.
- ''
- '' Rev 1.43 15 Apr 1994 11:58:26 mmeth
- '' NODENODEOPTIONSCB was not being registered for Personal directory dialog
- ''
- '' Rev 1.42 13 Apr 1994 17:06:02 mzgripce
- '' do not set sym_netlotusapp$ in main
- ''
- '' Rev 1.41 13 Apr 1994 09:31:12 cmoy
- ''
- '' Added SUB ConfigureAUTOEXEC and implemented it
- ''
- '' Rev 1.40 11 Apr 1994 17:49:00 thangv
- '' Removed Reg_GetProdSupportforDist(1) <> TRUE check from SERVER_DISTRIBUTION
- '' Dialog case. (check only for Srv support.)
- '' which is correct.
- ''
- '' Rev 1.39 11 Apr 1994 12:32:16 mmeth
- ''
- '' Cleaned up and made it more readable
- ''
- '' Rev 1.38 08 Apr 1994 13:53:04 thangv
- '' Fixed the problem with prev. button for Distribution install.
- '' Also added the lines in case gDISTRIBUTION that was nuked.
- ''
- '' Rev 1.37 07 Apr 1994 16:40:12 mmeth
- ''
- '' Cleaned up main.lss
- ''
- '' Rev 1.36 06 Apr 1994 16:30:12 mmeth
- '' Added a list gEXTRA. This list gets initialized with an etra 200000
- '' bytes for the Windows drive. This can be modified by the product groups if
- '' necessary.
- ''
- ''*********************************************************************/
- OPTION DECLARE
-
- USE "CALLBACK"
- USE "LANGUAGE"
-
- DECLARE PUBLIC SUB Lot_SetLotusFontsDir
- DECLARE FUNCTION DoDatalens(BYVAL direction$) AS STRING
- DECLARE FUNCTION NumberOfBytesPerBillbd() AS LONG
-
- DECLARE SUB SetTheBaseSymbol()
- DECLARE SUB InitInstall()
- DECLARE SUB ConfigureAUTOEXEC()
- DECLARE SUB InitStickyCopyList(network$, direction$)
- DECLARE SUB Lot_DoServerSharedWindows()
- DECLARE SUB Lot_DetectSharedWindows()
- DECLARE SUB Lot_DoSharedDLLs()
- DECLARE SUB TurnOffSharedWinsysSections()
-
- '*************************************************************************
- '** SUB INITIALIZE
- '**
- '** Purpose: Initial entry point into Common Install
- '**
- '** Author:
- '** Arguments: None
- '** Returns: NONE
- '*************************************************************************
-
- DIM FirstTime$
-
- SUB INITIALIZE
- DIM network$, notused%, notused1$, nProducts%,prodIndex%, nDirs%, app_flag%, rc$,i%, cwd$
- DIM inifile$, inf$, curcursor&, grouptitle$, dirSym$, lSize&, destdir$
- DIM direction$, nbytes&, lic$, SameFlag$, netLotusapp$, installini$
- DIM newnetpath$, automation$,longnotused&
- DIM win95proggroup$,yesno&
- DIM lang$, s$, listlen%, dlgID%
-
- '** Set up the error handlers
- ON Error STFQUIT GOTO MAINERROR
- ON Error STFERR GOTO STFERR_
- ON Error STFTOGGLE GOTO STFTOGGLEERR
-
- InitInstall
-
- ' IF NOT IsNewShell() THEN
- ' IF Lot_CheckPriviledges(PRIVILEDGE_CHECKFLAG_REGSYSTEMPATH) <> ERROR_SUCCESS THEN
- ' ErrorMsg SID_ERR_SECURITY, ""
- ' ERROR STFQUIT
- ' END IF
- ' END IF
-
- nProducts% = Reg_GetNumberOfProducts()
-
-
- '****************************************
- '******* START THE REAL WORK HERE *******
- '****************************************
-
- '***********AUTOMATION code*************************************************
- IF GetSymbolValue(SYM_AUTOMATIONINST$) = gTRUE$ THEN
- SetListItem "IDC_BMP", 1, STR$(IDD_TKT_PROD_BMP)
- notused1$ = PopupModelessDlg(DB_AUTOINSTWAIT, DB_AUTOINSTWAIT)
- END IF
- '** Allow the only the 1st product to change the registration default
- '** product will set symbols SYM_NAME$, SYM_COMPANY$
- notused1$ = Lot_CallOneProductFunction (1, "DefaultUserReg", gNEXT, TRUE, "")
- notused% = Lot_ReadSerialNumber()
-
-
- WELCOME: '** WELCOME THE USER
- direction$ = gNEXT
- '** Call each product's "ProductReg function". Products register themselves with toolkit.
- notused1$ = Lot_CallProductFunctions ("ProductReg", gNEXT, TRUE, gALLPRODUCTS$, "")
-
- '** AUTOMATE: comment out the "PopupModalDlg" stmts and
- '** and set SYM_NAME$, SYM_COMPANY$, SYM_NETWORK$.
- IF GetSymbolValue(SYM_AUTOMATIONINST$) <> gTRUE$ THEN
- IF GetSymbolValue(SYM_NETWORK$) = gNODE$ THEN
- notused% = RegisterCallback("CALLBACK", "WELCOMECB")
- rc$ = PopupModalDlg(DB_WELCOME_NODE, DB_WELCOME_NODE)
- ELSE
- notused% = RegisterCallback("CALLBACK", "WELCOMECB")
- IF Reg_GetProdSupportForSrv(1) OR _
- Reg_GetProdSupportForDist(1) <> FALSE THEN
- rc$ = PopupModalDlg(DB_WELCOME, DB_WELCOME)
- ELSE
- rc$ = PopupModalDlg(DB_WELCOMENOSRV, DB_WELCOMENOSRV)
- END IF
- END IF
- '** if the welcome dialog returns gBACK end Install.
- IF rc$ = gBACK$ THEN END
- direction$ = Lot_ConfirmNamesDlg ()
- IF direction$ = gBACK$ THEN GOTO WELCOME
- ELSE
- notused% = Lot_AutoGetUserInfo()
- END IF
-
- SERVER_DISTRIBUTION: '** ASK IF THIS IS A SERVER OR DIST. INSTALL
- network$ = GetSymbolValue(SYM_NETWORK$)
- IF network$ = gSERVER$ OR network$ = gDISTRIBUTION$ THEN
- IF Reg_GetProdSupportforSrv(1) <> FALSE THEN
-
- notused% = RegisterCallback("CALLBACK","DISKCOPYMETHODCB")
- '** AUTOMATE: comment out next line and explicitly set SYM_NETWORK
- '** SetSymbolValue SYM_NETWORK, gSERVER
- '** or
- '** SetSymbolValue SYM_NETWORK, gDISTRIBUTION
- direction$ = PopupModalDlg (DB_DISKCOPYMETHOD, DB_DISKCOPYMETHOD )
- END IF
- END IF
- IF direction$ = gBACK$ GOTO WELCOME
-
- '***********AUTOMATION code*************************************************
- SetTheBaseSymbol
-
- LAUNCHNAG:
- network$ = GetSymbolValue(SYM_NETWORK$)
- IF network$ = gSERVER$ THEN
- notused% = RegisterCallback("CALLBACK","LAUNCHNAGCB")
- '** AUTOMATE: comment out next line and never get asked about launching NAG
- direction$ = PopupModalDlg (DB_LAUNCHNAG, DB_LAUNCHNAG )
- END IF
- IF direction$ = gBACK$ GOTO SERVER_DISTRIBUTION
-
- '** Find out if this is a shared windows environment and confirm that this is
- '** what the user wants (server only)
- IF network$ = gSERVER$ THEN Lot_DetectSharedWindows
-
- '** Find out if we're a language install -- handle UI differently if so
- notused1$ = Lot_CallProductFunctions("InitLanguage", gNEXT, TRUE, gALLPRODUCTS$, "")
-
- '***********AUTOMATION code*************************************************
- SMARTSUITE_BASEDIR: '** If this is SmartSuite: Ask the user for the BASEDIR
- network$ = GetSymbolValue(SYM_NETWORK$)
- 'Don't allow user to change parent directory for a language install
- IF GetSymbolValue(SYM_INSTALLKIND$) <> gLANGUAGEINSTALL$ THEN
- IF network$ <> gDISTRIBUTION$ AND GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSMARTSUITE$ THEN
- notused% = RegisterCallback("SUIT", "SUITEDIRCB")
- '** AUTOMATE: comment out next line and explicitly set SYM_BASEDIR$
- '** SetSymbolValue SYM_BASEDIR$, "C:\lotsuite"
- direction$ = PopupModalDlg(DB_SUITEDIR, DB_SUITEDIR)
- ELSEIF network$ <> gDISTRIBUTION$ THEN
- notused% = RegisterCallback("CALLBACK", "PARENTDIRCB")
- direction$ = PopupModalDlg(DB_PARENTDIR, DB_PARENTDIR)
- END IF
- END IF
-
- '***********AUTOMATION code schen 5/9/97 *************************************
- DIM autobase$, defDir$
- IF GetSymbolValue(SYM_AUTOMATIONINST$) = gTRUE$ AND _
- GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSMARTSUITE$ THEN
- autobase$ = Lot_AutoGetBaseDirSymbol()
- IF autobase$ <> "" THEN
- defDir$ = autobase$
- ELSE
- 'ErrorMsg "Base Directory entry Invalid"
- ErrorMsg SID_ERR_SETSYMBOLVALUE, LdString(SID_ERR_AUTO_BASEDIR) + "SUIT"
- ERROR STFQUIT
- END IF
- SetSymbolValue SYM_BASEDIR$, defDir$
- END IF
-
- IF direction$ = gBACK$ THEN GOTO LAUNCHNAG
- '**************************
- '** Some more intialization
- '**************************
-
- '** Default all products to complete install
- SetSymbolValue SYM_SIZEOFINSTALL$, gCOMPLETE$
- FOR i% = 1 to nProducts%
- Reg_SetSelectedInstallType i%, gCOMPLETE$
- NEXT
-
- automation$ = GetSymbolValue(SYM_AUTOMATIONINST$)
- network$ = GetSymbolValue(SYM_NETWORK$)
- cwd$ = GetSymbolValue(SYM_STF_CWDDIR$)
- inifile$ = MakePath(cwd$,gINSTALLINI$)
-
- SELECT CASE network$
-
- '**********************************************************************
- '*********************** Standard Install *****************************
- '**********************************************************************
-
- CASE gSTANDARD$
-
- '** Read the INF file and initialize the share engine
- inf$ = GetIniKeyString (inifile$, "TOOLKIT", "STDINFFILE")
- ReadInfFile inf$
- notused% = Lot_CallSharedTool("InitSHARE()")
-
- '** Allow the products to do their initialization
- direction$ = Lot_CallProductFunctions("Init", direction$, TRUE, gALLPRODUCTS$, "GetSymbolValue(SYM_BASEDIR$)")
- IF direction$ = gBACK$ GOTO SMARTSUITE_BASEDIR
-
- IF GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSMARTSUITE$ THEN
- direction$ = Lot_CallOneProductFunction (1, "PrevVersions", gNEXT, TRUE, "")
- IF direction$ = gBACK$ GOTO SMARTSUITE_BASEDIR
- END IF
-
-
- '***********AUTOMATION code*************************************************
- STDSSAPPSEL:
- FirstTime$ = ""
- '** In this dialog, the user can select/deselect applications to be
- '** installed, and also specify directories for individual apps
- IF GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSMARTSUITE$ THEN
- IF automation$ <> gTRUE$ THEN
- notused% = RegisterCallback("SUIT", "APPSELCB")
- '** AUTOMATE: comment out to take defaults, too tricky
- '** to automatically pick anything different.
- direction$ = PopupModalDlg (DBSUIT_APPSEL, DBSUIT_APPSEL)
- ELSE
- notused% = Lot_AutoSuiteAppSelect()
- END IF
- END IF
- IF direction$ = gBACK$ GOTO SMARTSUITE_BASEDIR
-
- '***********AUTOMATION code: Set The destination Dir symbols*********
- IF automation$ = gTRUE$ AND _
- GetSymbolValue(SYM_INSTALLKIND$) <> gLANGUAGEINSTALL$ THEN
- notused% = Lot_AutoGetProductDestDirSymbol ()
- END IF
-
- '** Consolidate the lotusapp if needed
- IF Lot_CallSharedTool("PreConfigSHARE()") = 2 THEN
- direction$ = gBACK$
- END IF
- IF direction$ = gBACK$ GOTO STDSSAPPSEL
-
- '***********AUTOMATION code*************************************************
- STDSIZEOFINSTALL: '** Ask the user kind of install: (COMPLETE, CUSTOM, LAPTOP)
- '** AUTOMATE: comment out call to "Lot_GetSizeOfInstall"
- '** Result will be a default install of "COMPLETE", anything else is too tricky.
- '** For a non-suite install you can set the destination directory:
- '** dirSym$ = Reg_GetDirSymbolList(1)
- '** dirSym$ = GetListItem(dirSym$, 1)
- '** SetSymbolValue dirSym$, "c:\foo\"
- '** Lot_RefreshDestination(dirSym$)
- nProducts% = Reg_GetNumberOfProducts() : app_flag% = FALSE
- FOR prodIndex% = 1 to nProducts%
- If Reg_GetUIInOrOut (prodIndex%) <> FALSE AND _
- Reg_GetAllowUserToPickInSuite(prodIndex%) <> FALSE Then
- app_flag% = TRUE
- End If
- NEXT
- If app_flag% <> FALSE Then
- If automation$ = gTRUE$ Then
- notused% = Lot_AutoGetSizeOfInstall()
- Else
- direction$ = Lot_GetSizeOfInstall()
- IF direction$ = gBACK$ GOTO STDSSAPPSEL
- End If
- End If
-
- STDINITIALIZECOPYLST:
- '** Make the products initialize their own copy list
- InitStickyCopyList network$, direction$
- IF direction$ = gBACK$ GOTO STDSIZEOFINSTALL
-
- '*****AUTOMATION code *****************************************************
- IF automation$ = gTRUE$ AND _
- GetSymbolValue(SYM_SIZEOFINSTALL$) = gCUSTOM$ THEN
- notused% = Lot_AutoCustomizeShare()
- END IF
-
- Lot_SetCurrentProduct(1)
-
- STDCUSTOM:
-
- IF automation$ <> gTRUE$ Then
- IF GetSymbolValue(SYM_SIZEOFINSTALL$) = gCUSTOM$ THEN
- IF GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSINGLE$ THEN
- notused% = RegisterCallback("CALLBACK","CUSTOM1CB")
- direction$ = PopupModalDlg (DBM_CUSTOMIZEBASESINGLEPROD, _
- DBM_CUSTOMIZEBASESINGLEPROD)
- ELSE
- If app_flag% <> FALSE Then
- notused% = RegisterCallback("SUIT","CUSTOMIZEAPPSCB")
- direction$ = PopupModalDlg (DBSUIT_CUSTOMIZEAPPS,_
- DBSUIT_CUSTOMIZEAPPS)
- End If
- END IF
- END IF
- ELSE
- '*** Customize Suite before customizing individual products ***
- IF GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSMARTSUITE$ THEN
- notused% = Lot_AutoInstallSuiteCustomize()
- END IF
- notused% = Lot_AutoInstallCustomize()
- END IF
-
- IF direction$ = gBACK$ GOTO STDINITIALIZECOPYLST
-
- STDDATALENS: '** Process the Datalens modules
- direction$ = DoDatalens(direction$)
- IF direction$ = gBACK$ GOTO STDINITIALIZECOPYLST
-
- STDUSERUI: '** Allow product to bring up any last minute UI
- '** AUTOMATE: comment out next line and avoid product specific UI.
- direction$ = Lot_CallProductFunctions("UI", direction$, FALSE, g1PRODUCT, "")
- IF direction$ = gBACK$ GOTO STDDATALENS
-
- '***********AUTOMATION code*************************************************
- IF automation$ <> gTRUE$ THEN
- STDPROGMAN: '** Put Progman Group UI
- notused% = RegisterCallback("CALLBACK","PROGMANGROUPCB")
- '** AUTOMATE: comment out next line set the progman group name yourself
- '** Reg_SetProgManagerGroup 1, "MY GROUP"
- IF Reg_GetRootFolder() = "" THEN
- direction$ = PopupModalDlg (DBM_PROGMANGROUP, DBM_PROGMANGROUP)
- ELSE
- direction$ = PopupModalDlg (DBM_PROGRAMFOLDER, DBM_PROGRAMFOLDER)
- END IF
- IF direction$ = gBACK$ GOTO STDUSERUI
- ELSE
- notused% = Lot_AutoGetProgramGroupOrFolder()
- END IF
-
- UIPOP 1 '** Bring down automation PLEASEWAIT
-
- '** Start the file copy
-
- notused% = Lot_AutoWriteOutDebugFile()
-
- direction$ = PopupModalDlg (DB_BEGINCOPYING, DB_BEGINCOPYING)
- IF direction$ = gBACK$ GOTO STDPROGMAN
-
- '*****AUTOMATIONCODE********************************
- '*** Precopy Config processor
-
- '** Give the products a last crack at the CopyList before it gets copied
- notused% = RemovePriorVersion("reset","buffer")
- notused1$ = Lot_CallProductFunctions("PreCopyConfig", direction$, FALSE, gALLPRODUCTS, "FALSE")
-
- '** Make sure there is enough space
- IF automation$ = gTRUE$ THEN
- notused% = AutoCheckForSpace()
- ELSE
- SELECT CASE GetSymbolValue(SYM_SIZEOFINSTALL$)
-
- CASE gCOMPLETE$
- IF CheckForSpace(DB_INSUFDISKSPACE) = FAILURE GOTO SMARTSUITE_BASEDIR 'STDSIZEOFINSTALL
- CASE gLAPTOP$
- IF CheckForSpace(DB_INSUFDISKSPACEMIN) = FAILURE GOTO SMARTSUITE_BASEDIR 'STDSIZEOFINSTALL
- CASE gCUSTOM$
- IF CheckForSpace(DB_INSUFDISKSPACECUST) = FAILURE GOTO STDINITIALIZECOPYLST 'STDCUSTOM
- END SELECT
- END IF
- '** Copy all the files in the copylist
- longnotused& = SetSizeCheckMode(CLNG(0))
- IF GetSymbolValue(SYM_LOGFILE$) <> "" THEN
- DumpCopyList GetSymbolValue(SYM_LOGFILE$)
- END IF
- nbytes& = NumberOfBytesPerBillbd()
- notused1$ = Lot_CallOneProductFunction(1,"AddTheBillBoards", gNEXT, FALSE, CSTR(nbytes&))
-
- ''Display bmps centred in billboards
- SetSymbolValue SYM_BMP_DISPLAY_MODE$, "CENTERED"
- '' Added language subdirectory to source/destination paths if needed
- Lot_FixupLanguageDirectories
- CopyFilesInCopyList
- ''Set it back to default now
- SetSymbolValue SYM_BMP_DISPLAY_MODE$, ""
-
- '** Configure the shared files
- curcursor& = ShowWaitCursor()
- SetListItem "IDC_BMP", 1, STR$(IDD_PLEASEWAIT_BMP) '** put up the bitmap
- notused1$ = PopupModelessDlg(DB_PLEASEWAIT, DB_PLEASEWAIT)
- notused% = Lot_SaveFeaturesInstaledInInstallIni()
- '** Register shared DLLs for all sections that have the special "_SHRCNT"
- '** suffix
- Lot_DoSharedDLLs
-
- '** Allow the products to configure the product after file copy
- notused1$ = Lot_CallProductFunctions("PostCopyConfig", gNEXT, FALSE, gALLPRODUCTS, |"|+grouptitle$+|"|)
-
- UIPOP 1 '** Bring down DB_PLEASEWAIT
-
- IF NOT IsNewShell() THEN
- '** Create a program manager group for the product #1
- grouptitle$ = Reg_GetProgManagerGroupName(1)
- '** notused% = ProgmanManageGroup(grouptitle$, ADD_GRP)
- CreateProgmanGroup CHR$(34) + grouptitle$ + CHR$(34), "", cmoVital
- END IF
-
-
- '*** schen AddiconOptions for Automate install 1/16/95
-
- IF automation$ = gTRUE$ Then
-
- notused% = Lot_AutoAddiconOptions ()
- if notused% Then
- notused1$ = Lot_CallProductFunctions("AddIcons", gNEXT, FALSE, gALLPRODUCTS, |"|+grouptitle$+|"|)
- end if
- ELSE
- notused1$ = Lot_CallProductFunctions("AddIcons", gNEXT, FALSE, gALLPRODUCTS, |"|+grouptitle$+|"|)
- END IF
-
- '** Bring up DB_PLEASEWAIT again
- SetListItem "IDC_BMP", 1, STR$(IDD_PLEASEWAIT_BMP) '** put up the bitmap
- notused1$ = PopupModelessDlg(DB_PLEASEWAIT, DB_PLEASEWAIT)
-
- notused% = Lot_CallSharedTool("ConfigSHARE()")
- notused% = Lot_CallSharedTool("AddSHAREIcons()")
-
- UIPOP 1 '** Bring down DB_PLEASEWAIT
- RestoreCursor curcursor&
-
- '** Win32: This should do nothing except bring up the success dlg.
- ConfigureAUTOEXEC
-
- notused1$ = Lot_CallProductFunctions("PostSuccessReg", gNEXT, FALSE, gALLPRODUCTS,"")
- 'IF automation$ = gTRUE$ THEN
- ' AutoInstallReboot
- 'END IF
- '**********************************************************************
- '************************* Server Install *****************************
- '**********************************************************************
-
- CASE gSERVER$
-
- '** Read the Server INF and initialize SHARE
- inf$ = GetIniKeyString (inifile$, "TOOLKIT", "SRVINFFILE")
- ReadInfFile inf$
- notused% = Lot_CallSharedTool("InitSHARE()")
-
- '** Allow the products to do their initialization
- direction$ = Lot_CallProductFunctions("Init", direction$, TRUE, gALLPRODUCTS$, "GetSymbolValue(SYM_BASEDIR$)")
- IF direction$ = gBACK$ GOTO WELCOME
-
- '***********AUTOMATION code*************************************************
- SMARTSUITE_COMPONENTSDIR:
- IF GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSMARTSUITE$ AND _
- Reg_GetProdSupportforShare(1) = 1 THEN
-
- 'Set defaults for components and lotusapp directories based on
- 'cinstall.ini found in parent directory
- s$ = GetSymbolValue(SYM_BASEDIR$)
- installini$ = MakePath( s$, gINSTALLINI$)
- IF DoesFileExist(installini$,femExists) = 1 THEN
- '** Set server defaults for COMPONENTSDIR based on entries
- '** in cinstall.ini
- s$ = GetIniKeyString(installini$, "Server Configuration of Shared Tools", _
- "COMPONENTSDIR")
- IF s$ <> "" THEN SetSymbolValue SYM_COMPONENTSDIR$, s$
- '** Check for language install by looking for the "LANGUAGE" key in
- '** cinstall.ini
- lang$ = GetSymbolValue(SYM_INSTALL_LANGUAGE$)
- s$ = GetIniKeyString( installini$, "TOOLKIT", "Language")
- IF s$ <> "" AND s$ <> lang$ THEN
- SetSymbolValue SYM_INSTALLKIND$, gLANGUAGEINSTALL$
- 'For suite/server, all products are language or not
- listlen% = GetListLength(SYM_INSTALLKINDS$)
- FOR i% = 1 TO listlen%
- SetListItem SYM_INSTALLKINDS$, i%, gLANGUAGEINSTALL$
- NEXT
- '** Inform the user what's happening
- '** The product name is based on first product (single product name or Suite)
- s$ = GetSymbolValue(SYM_REG_PRODUCTNAME$)
- PopupLanguageInstallMessage( s$ )
- END IF
-
- END IF
- IF GetSymbolValue(SYM_INSTALLKIND$) <> gLANGUAGEINSTALL$ THEN
- notused% = RegisterCallback ("CALLBACK", "GETCOMPONENTDIRCB")
- '** AUTOMATE: comment out next line and explicitly set SYM_COMPONENTSDIR$
- '** SetSymbolValue SYM_COMPONENTSDIR$, "C:\lotus\compnent"
- '** Lot_RefreshDestination SYM_COMPONENTSDIR$
- direction$ = PopupModalDlg (DBM_SPECIFY_SRVLOTUSAPPDIR, DBM_SPECIFY_SRVLOTUSAPPDIR)
- END IF
-
- END IF
-
- '** Language Install Code
- '**
- IF GetSymbolValue(SYM_SINGLESMARTSUITE$) <> gSMARTSUITE$ THEN
- s$ = Lot_GetChapterFromKeyword(Reg_GetProductAcronym(1) + gTOP$)
- s$ = Lot_GetChapterValStr(s$, F_DESTDIRSYM)
- s$ = GetSymbolValue(s$)
- installini$ = MakePath( s$, gINSTALLINI$)
- lang$ = GetSymbolValue(SYM_INSTALL_LANGUAGE$)
- IF DoesFileExist(installini$,femExists) = 1 THEN
- '** If cinstall.ini exists in the product dir, and the language is different
- '** and we are a server install, then we are in a language install
- '**
- s$ = GetIniKeyString( installini$, "TOOLKIT", "Language")
- IF s$ <> "" AND s$ <> lang$ THEN
- SetSymbolValue SYM_INSTALLKIND$, gLANGUAGEINSTALL$
- SetListItem SYM_INSTALLKINDS$, 1, gLANGUAGEINSTALL$
- '** Inform the user what's happening
- '** The product name is based on first product (single product name or Suite)
- s$ = GetSymbolValue(SYM_REG_PRODUCTNAME$)
- PopupLanguageInstallMessage( s$ )
- '** Reset server values for COMPONENTSDIR based on entries
- '** in cinstall.ini
- s$ = GetIniKeyString(installini$, "Server Configuration of Shared Tools", _
- "COMPONENTSDIR")
- IF s$ <> "" THEN SetSymbolValue SYM_COMPONENTSDIR$, s$
- END IF
- END IF
- END IF
-
- IF direction$ = gBACK$ THEN GOTO SMARTSUITE_BASEDIR
-
- '** TV: These were called in the callbacks. They should be called in main
- '** instead.
- ResetWinWinsysSymbols
-
- '** Make sure fonts directory is set relative to location on server
- Lot_SetLotusFontsDir
-
- SRVSSAPPSEL: '** In this dialog, the user can select/deselect applications to
- '** be installed, and also specify directories for individual apps
- FirstTime$ = ""
- IF GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSMARTSUITE$ THEN
- IF automation$ <> gTRUE$ THEN
- '** GEMINI
- '** notused% = RegisterCallback("SUIT", "APPSELCB")
- '** '** AUTOMATE: comment out to take defaults, too trickey
- '** '** to automatically pick anything different.
- '** direction$ = PopupModalDlg (DBSUIT_SAPPSEL, DBSUIT_SAPPSEL)
- '** GEMINI
- ELSE
- notused% = Lot_AutoSuiteAppSelect()
- END IF
- END IF
- IF direction$ = gBACK$ GOTO SMARTSUITE_COMPONENTSDIR
-
- SRVSIZEOFINSTALL: '** Ask kind of install to do (COMPLETE, CUSTOM, LAPTOP)
-
- '** AUTOMATE: comment out call to "Lot_GetSizeOfInstall"
- '** Result will be a default install of "COMPLETE", anything else is too tricky.
- '** For a non-suite install you can set the destination directory:
- '** dirSym$ = Reg_GetDirSymbolList(1)
- '** dirSym$ = GetListItem(dirSym$, 1)
- '** SetSymbolValue dirSym$, "c:\foo\"
- '** Lot_RefreshDestination(dirSym$)
- nProducts% = Reg_GetNumberOfProducts() : app_flag% = FALSE
- FOR prodIndex% = 1 to nProducts%
- If Reg_GetUIInOrOut (prodIndex%) <> FALSE AND _
- Reg_GetAllowUserToPickInSuite(prodIndex%) <> FALSE Then
- app_flag% = TRUE
- End If
- NEXT
- If app_flag% <> FALSE Then
- If automation$ = gTRUE$ Then
- notused% = Lot_AutoGetSizeOfInstall()
- Else
- direction$ = Lot_GetSizeOfInstall ()
- IF direction$ = gBACK$ GOTO SRVSSAPPSEL
- End If
- End If
-
- '** Make the products initialize their own copy list
- InitStickyCopyList network$, direction$
- IF direction$ = gBACK$ GOTO SRVSIZEOFINSTALL
-
- '*****AUTOMATION code *****************************************************
- IF automation$ = gTRUE$ AND _
- GetSymbolValue(SYM_SIZEOFINSTALL$) = gCUSTOM$ THEN
- notused% = Lot_AutoCustomizeShare()
- END IF
-
- Lot_SetCurrentProduct(1)
-
- SRVCUSTOM:
-
- IF automation$ <> gTRUE$ Then
- IF GetSymbolValue(SYM_SIZEOFINSTALL$) = gCUSTOM$ THEN
- IF GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSINGLE$ THEN
- notused% = RegisterCallback("CALLBACK","CUSTOM1CB")
- direction$ = PopupModalDlg (DBM_CUSTOMIZEBASESINGLEPROD, _
- DBM_CUSTOMIZEBASESINGLEPROD)
- ELSE
- If app_flag% <> FALSE Then
- notused% = RegisterCallback("SUIT","CUSTOMIZEAPPSCB")
- direction$ = PopupModalDlg (DBSUIT_CUSTOMIZEAPPS,_
- DBSUIT_CUSTOMIZEAPPS)
- End If
- END IF
- END IF
- ELSE
- '*** Customize Suite before customizing individual products ***
- IF GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSMARTSUITE$ THEN
- notused% = Lot_AutoInstallSuiteCustomize()
- END IF
- notused% = Lot_AutoInstallCustomize()
- END IF
-
- IF direction$ = gBACK$ GOTO SRVSIZEOFINSTALL
-
- SRVDATALENS: '** Process the Datalens modules
- direction$ = DoDatalens(direction$)
- if direction$ = gBACK$ GOTO SRVCUSTOM
-
- SRVNODEOPTIONS: '** Process the Node Options
- IF GetSymbolValue(SYM_SIZEOFINSTALL$) = gCUSTOM$ AND _
- Lot_AreAnyNodeOptAvailToSrv() <> 0 AND _
- app_flag% <> FALSE THEN
- IF automation$ <> gTRUE$ THEN
- notused% = RegisterCallback("CALLBACK", "SRVNODEOPTIONSCB")
- '** AUTOMATE: comment out call toPopupmodalDlg and get default.
- direction$ = PopupModalDlg (DB_SRV_NODEOPTIONS, _
- DB_SRV_NODEOPTIONS)
- ELSE
- notused% = Lot_AutoSetSrvNodeOptions()
- END IF
- END IF
- IF direction$ = gBACK$ GOTO SRVDATALENS
-
- SRVUI: '** Allow product to bring up any last minute UI
- '** AUTOMATE: comment out next line and avoid product specific UI.
-
-
- direction$ = Lot_CallProductFunctions("UI", direction$, FALSE, g1PRODUCT, "")
- IF direction$ = gBACK$ GOTO SRVNODEOPTIONS
-
- IF automation$ = gTRUE$ THEN
- notused% = Lot_AutoGetSetLicenserInfo()
- END IF
-
- '***********AUTOMATION code*************************************************
- IF automation$ <> gTRUE$ THEN
- SRVPROGMAN: '** Put Progman Group UI
- notused% = RegisterCallback("CALLBACK","PROGMANGROUPCB")
- '** AUTOMATE: comment out next line set the progman group name yourself
- '** Reg_SetProgManagerGroup 1, "MY GROUP"
- IF Reg_GetRootFolder() = "" THEN
- direction$ = PopupModalDlg (DBM_PROGMANGROUP, DBM_PROGMANGROUP)
- ELSE
- direction$ = PopupModalDlg (DBM_PROGRAMFOLDER, DBM_PROGRAMFOLDER)
- END IF
- IF direction$ = gBACK$ GOTO SRVUI
- ELSE
- notused% = Lot_AutoGetProgramGroupOrFolder()
- END IF
-
- UIPOP 1 '** Bring down automation PLEASEWAIT
-
- notused% = Lot_AutoWriteOutDebugFile()
-
- direction$ = PopupModalDlg (DB_BEGINCOPYING, DB_BEGINCOPYING)
- IF direction$ = gBACK$ GOTO SRVPROGMAN
-
- '*****AUTOMATIONCODE********************************
- '*** Precopy Config processor
-
- '** Give the products a last crack at the CopyList before it gets copied
- ''* IF there is any product with licensing turned on, then
- ''* assume its on for all products.
- lic$ = CSTR(FALSE)
- FOR i% = 1 to nProducts%
- IF Reg_GetProdSupportForLicense (i%) <> FALSE AND _
- Reg_IsLicenseSelected (i%) <> FALSE THEN
- lic$ = CSTR(TRUE)
- EXIT FOR
- END IF
- NEXT
- notused% = RemovePriorVersion("reset","buffer")
- notused1$ = Lot_CallProductFunctions("PreCopyConfig", direction$, FALSE, gALLPRODUCTS, lic$)
-
- '** Make sure there is enough space
- IF automation$ = gTRUE$ THEN
- notused% = AutoCheckForSpace()
- ELSE
- IF GetSymbolValue(SYM_SIZEOFINSTALL$) = gCOMPLETE$ THEN
- IF CheckForSpace(DB_INSUFDISKSPACE) = FAILURE GOTO SMARTSUITE_BASEDIR 'SRVSIZEOFINSTALL
- ELSE
- IF CheckForSpace(DB_INSUFDISKSPACECUST) = FAILURE GOTO SRVCUSTOM 'SRVCUSTOM
- END IF
- END IF
-
- '** Start the file copy
- notused% = SetSizeCheckMode(FALSE)
- IF GetSymbolValue(SYM_LOGFILE$) <> "" THEN
- DumpCopyList GetSymbolValue(SYM_LOGFILE$)
- END IF
- nbytes& = NumberOfBytesPerBillbd()
- notused1$ = Lot_CallOneProductFunction(1,"AddTheBillBoards", gNEXT, FALSE, CSTR(nbytes&))
- ''Display bmps centred in billboards
- SetSymbolValue SYM_BMP_DISPLAY_MODE$, "CENTERED"
- '' Added language subdirectory to source/destination paths if needed
- Lot_FixupLanguageDirectories
- CopyFilesInCopyList
- ''Set it back to default now
- SetSymbolValue SYM_BMP_DISPLAY_MODE$, ""
-
- ' Special case of server/language install
- ' Set cinstall.ini location to subdirectory for writing installed features
- IF GetSymbolValue(SYM_INSTALLKIND$) = gLANGUAGEINSTALL$ THEN
- s$ = GetSymbolValue(SYM_INSTALL_LANGUAGE$)
- gINSTALLINI$ = Lot_SetLanguageDirectory(s$) + "\" + gINSTALLINI$
- END IF
- '** Configure the shared files
- curcursor& = ShowWaitCursor()
- SetListItem "IDC_BMP", 1, STR$(IDD_PLEASEWAIT_BMP) '** put up the bitmap
- notused1$ = PopupModelessDlg(DB_PLEASEWAIT, DB_PLEASEWAIT)
- notused% = Lot_SaveFeaturesInstaledInInstallIni()
-
- '' For a shared windows installation, copy the windows, windows system,
- '' and font files to the shared windows location
- Lot_DoServerSharedWindows
-
- '** All the products to configure after copy
- IF Lot_AreAnyNodeOptAvailToSrv() <> 0 THEN
- notused% = Lot_SaveTheNodeOptionsInInstallIni()
- END IF
-
- '** Allow the products to configure the product after file copy
- notused1$ = Lot_CallProductFunctions("PostCopyConfig", gNEXT, FALSE, gALLPRODUCTS,|"|+grouptitle$+|"|)
-
- UIPOP 1 '** Bring Down DB_PLEASEWAIT
-
- '** Create a program manager group for the product #1
- grouptitle$ = Reg_GetProgManagerGroupName(1)
- '** notused% = ProgmanManageGroup(grouptitle$, ADD_GRP)
- If NOT IsNewShell() THEN
- CreateProgmanGroup CHR$(34) + grouptitle$ + CHR$(34), "", cmoVital
- End If
-
- '*** schen 3/19 Automate Addicon for server
- IF automation$ = gTRUE$ Then
-
- notused% = Lot_AutoAddiconOptions ()
- if notused% Then
- notused1$ = Lot_CallProductFunctions("AddIcons", gNEXT, FALSE, gALLPRODUCTS, |"|+grouptitle$+|"|)
- end if
- ELSE
- notused1$ = Lot_CallProductFunctions("AddIcons", gNEXT, FALSE, gALLPRODUCTS, |"|+grouptitle$+|"|)
- END IF
-
- SetListItem "IDC_BMP", 1, STR$(IDD_PLEASEWAIT_BMP) '** put up the bitmap
- notused1$ = PopupModelessDlg(DB_PLEASEWAIT, DB_PLEASEWAIT)
-
- notused% = Lot_CallSharedTool("ConfigSHARE()")
- notused% = Lot_CallSharedTool("AddSHAREIcons()")
-
- '** Change the install.ini file so we can do NODE install from server
- IF GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSINGLE$ THEN
- dirSym$ = Reg_GetDirSymbolList(1)
- If GetListLength(dirSym$) <= 0 Then
- ErrorMsg SID_ERR_SRV_MUST_HAVE_MAINDIR, ""
- ERROR STFQUIT
- End If
- dirSym$ = GetListItem(dirSym$, 1)
- ELSE
- dirSym$ = SYM_BASEDIR$
- END IF
- ' Special case of server/language install, use INSTDIR for install.lst
- IF GetSymbolValue(SYM_INSTALLKIND$) = gLANGUAGEINSTALL$ THEN _
- dirSym$ = "INSTDIR"
- CreateIniKeyValue GetSymbolValue(dirSym$) + "install.lst", _
- "Params", "CmdLine", _
- |lsirun.exe start /S "%s" %s /N|, cmoOverwrite
-
- UIPOP 1 '** Bring Down DB_PLEASEWAIT
- RestoreCursor curcursor&
-
- '** Tell user we succeeded
- '* Only looks at first product! Won't work for smartsuite MMETH
- notused% = RegisterCallback("CALLBACK","SRV_SUCCESSCB")
- IF CINT(FIsKeywordInCopyList("LICTOP")) <> FALSE AND _
- Reg_IsLicenseSelected (1) <> FALSE THEN
- rc$ = PopupModalDlg (DB_SRV_SUCCESS_LIC, DB_SUCCESS)
- ELSE
- rc$ = PopupModalDlg (DB_SRV_SUCCESS, DB_SUCCESS)
- END IF
-
- notused1$ = Lot_CallProductFunctions("PostSuccessReg", gNEXT, FALSE, gALLPRODUCTS,"")
-
- '**********************************************************************
- '************************* Node Install *******************************
- '**********************************************************************
-
- CASE gNODE$
-
- '** Read in the INF file and init share
- inf$ = GetIniKeyString (inifile$, "TOOLKIT", "NODEINFFILE")
- ReadInfFile inf$
- notused% = Lot_CallSharedTool("InitSHARE()")
-
- '** Call the product initialization functions
- direction$ = Lot_CallProductFunctions("Init", direction$, TRUE, gALLPRODUCTS$, "GetSymbolValue(SYM_BASEDIR$)")
- IF direction$ = gBACK$ GOTO SMARTSUITE_BASEDIR
-
- IF GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSMARTSUITE$ THEN
- direction$ = Lot_CallOneProductFunction (1, "PrevVersions", gNEXT, TRUE, "")
- IF direction$ = gBACK$ GOTO SMARTSUITE_BASEDIR
- END IF
-
- '************** For smart suite, Application Selection Dialog *****
- NODESSAPPSEL:
- FirstTime$ = ""
- '** In this dialog, the user can select/deselect applications to be
- '** installed, and also specify directories for individual apps
- IF GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSMARTSUITE$ THEN
- IF automation$ <> gTRUE$ THEN
- notused% = RegisterCallback("SUIT", "APPSELCB")
- '** AUTOMATE: comment out to take defaults, too trickey
- '** to automatically pick anything different.
- direction$ = PopupModalDlg (DBSUIT_APPSEL, DBSUIT_APPSEL)
- ELSE
- notused% = Lot_AutoSuiteAppSelect()
- END IF
- END IF
- IF direction$ = gBACK$ GOTO SMARTSUITE_BASEDIR
-
- '***********AUTOMATION code******************************
- IF automation$ = gTRUE$ AND _
- GetSymbolValue(SYM_INSTALLKIND$) <> gLANGUAGEINSTALL$ THEN
- notused% = Lot_AutoGetProductDestDirSymbol ()
- END IF
-
- '** Language Install Code
- ' install must be in a language subdirectory and the language a
- ' secondary language for the server
- IF IsServerSecondaryLanguage AND SrcDirResetFlag <> TRUE THEN
- s$ = GetSymbolValue(SYM_STF_SRCDIR$)
- s$ = OneUp(NullTrim(s$))
- SetSymbolValue SYM_STF_SRCDIR$, s$
- SrcDirResetFlag = TRUE
- END IF
-
- '** Make the products initialize their own copy list
- InitStickyCopyList network$, direction$
- IF direction$ = gBACK$ GOTO NODESSAPPSEL
-
- '** Consolidate the lotusapp if needed
- IF Lot_CallSharedTool("PreConfigSHARE()") = 2 THEN
- direction$ = gBACK$
- END IF
- IF direction$ = gBACK$ GOTO NODESSAPPSEL
-
-
- '************************ Change Node Path *************************
- CHANGE_NODE_PATH:
- IF direction$ = gBACK$ GOTO NODESSAPPSEL
- NODENODEOPTIONS:
-
- '** For a non-suite install you can set the destination directory:
- '** dirSym$ = Reg_GetDirSymbolList(1)
- '** dirSym$ = GetListItem(dirSym$, 1)
- '** SetSymbolValue dirSym$, "c:\foo\"
- '** Lot_RefreshDestination(dirSym$)
- dlgID% = 0
- IF automation$ <> gTRUE$ THEN
- '** If it's standalone and there is a dir symbol
- IF GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSINGLE$ THEN
- dirSym$ = Reg_GetDirSymbolList(1)
- IF GetListLength(dirSym$) >= 1 Then
- IF Lot_IsAnyNodeOptAvailToNode() <> 0 THEN
- dlgID% = DB_NODE_PERSONALDIRNODEOPT
- ELSE
- dlgID% = DB_NODE_PERSONALDIR
- END IF
- END IF
- '** smartSuite
- ELSE
- IF Lot_AreAnyNodeOptionsAvail() <> 0 THEN
- dlgID% = DB_NODE_NODEOPTIONS
- END IF
- END IF
- IF dlgID% <> 0 THEN
- notused% = RegisterCallback("CALLBACK", "NODENODEOPTIONSCB")
- direction$ = PopupModalDlg (dlgID%,CLng(dlgID%))
- ELSE
- Lot_TurnOffAllNodeOptSections
- END IF
- ELSE
- notused% = Lot_AutoProcessNodeoptions()
- END IF
- IF direction$ = gBACK$ GOTO CHANGE_NODE_PATH
-
- NODEUI: '** Allow the product to put up its UI
- direction$ = Lot_CallProductFunctions("UI", direction$, FALSE, g1PRODUCT, "")
- IF direction$ = gBACK$ GOTO NODENODEOPTIONS:
-
- '***********AUTOMATION code*************************************************
- IF automation$ <> gTRUE$ THEN
- NODEPROGMAN: '** Put Progman Group UI
- notused% = RegisterCallback("CALLBACK","PROGMANGROUPCB")
- '** AUTOMATE: comment out next line set the progman group name yourself
- '** Reg_SetProgManagerGroup 1, "MY GROUP"
- IF Reg_GetRootFolder() = "" THEN
- direction$ = PopupModalDlg (DBM_PROGMANGROUP, DBM_PROGMANGROUP)
- ELSE
- direction$ = PopupModalDlg (DBM_PROGRAMFOLDER, DBM_PROGRAMFOLDER)
- END IF
- IF direction$ = gBACK$ GOTO NODEUI
- ELSE
- notused% = Lot_AutoGetProgramGroupOrFolder()
- END IF
-
- UIPOP 1 '** Bring down automation PLEASEWAIT
-
- notused% = Lot_AutoWriteOutDebugFile()
-
- direction$ = PopupModalDlg (DB_BEGINCOPYING,DB_BEGINCOPYING)
- IF direction$ = gBACK$ GOTO NODEPROGMAN
-
- '*****AUTOMATIONCODE********************************
- '*** Precopy Config processor
-
- '** Configuration before copying
- notused% = RemovePriorVersion("reset","buffer")
- notused1$ = Lot_CallProductFunctions("PreCopyConfig", direction$, FALSE, gALLPRODUCTS, "FALSE")
-
-
- curcursor& = ShowWaitCursor()
- '** Copy the files
- longnotused& = SetSizeCheckMode(CLNG(FALSE))
- notused% = Lot_CallSharedTool ("Lot_RefreshLocalLotusapp()")
- notused% = Lot_RefreshLocalComponentDir
-
- RestoreCursor curcursor&
- '** Make sure there is enough space before continuing
- IF automation$ = gTRUE$ THEN
- notused% = AutoCheckForSpace()
- ELSE
- IF CheckForSpace(DB_INSUFDISKSPACE) = FAILURE GOTO CHANGE_NODE_PATH
- END IF
-
- curcursor& = ShowWaitCursor()
- IF GetSymbolValue(SYM_LOGFILE$) <> "" THEN
- DumpCopyList GetSymbolValue(SYM_LOGFILE$)
- END IF
-
- nbytes& = NumberOfBytesPerBillbd()
- notused1$ = Lot_CallOneProductFunction(1,"AddTheBillBoards", gNEXT, FALSE, CSTR(nbytes&))
-
- '** Fixup location of files on server based on cinstall.ini
- '** for symbols registered by clients
- Lot_FixupSourceDirectories
-
- ''Turn off Windows System files for shared windows install
- Lot_DetectSharedWindows
- IF gIsSharedWindows% THEN TurnOffSharedWinsysSections
-
- ''Display bmps centred in billboards
- SetSymbolValue SYM_BMP_DISPLAY_MODE$, "CENTERED"
- '' Added language subdirectory to source/destination paths if needed
- Lot_FixupLanguageDirectories
- CopyFilesInCopyList
- ''Set it back to default now
- SetSymbolValue SYM_BMP_DISPLAY_MODE$, ""
-
- SetListItem "IDC_BMP", 1, STR$(IDD_PLEASEWAIT_BMP) '** put up the bitmap
- notused1$ = PopupModelessDlg(DB_PLEASEWAIT, DB_PLEASEWAIT)
- notused% = Lot_SaveFeaturesInstaledInInstNodeIni()
- '** Register shared DLLs for all sections that have the special "_SHRCNT"
- '** suffix
- Lot_DoSharedDLLs
-
- notused1$ = Lot_CallProductFunctions("PostCopyConfig", gNEXT, FALSE, gALLPRODUCTS,|"|+grouptitle$+|"|)
-
- UIPOP 1 '** Bring Down DB_PLEASEWAIT
-
- '** Allow the products to do their initialization
- grouptitle$ = Reg_GetProgManagerGroupName(1)
- '** notused% = ProgmanManageGroup(grouptitle$, ADD_GRP)
- If NOT IsNewShell() THEN
- CreateProgmanGroup CHR$(34) + grouptitle$ + CHR$(34), "", cmoVital
- End If
-
- '*** schen 3/19 for node Automate addicon
-
- IF automation$ = gTRUE$ Then
-
- notused% = Lot_AutoAddiconOptions ()
- if notused% Then
- notused1$ = Lot_CallProductFunctions("AddIcons", gNEXT, FALSE, gALLPRODUCTS, |"|+grouptitle$+|"|)
- end if
- ELSE
- notused1$ = Lot_CallProductFunctions("AddIcons", gNEXT, FALSE, gALLPRODUCTS, |"|+grouptitle$+|"|)
- END IF
-
- SetListItem "IDC_BMP", 1, STR$(IDD_PLEASEWAIT_BMP) '** put up the bitmap
- notused1$ = PopupModelessDlg(DB_PLEASEWAIT, DB_PLEASEWAIT)
-
- '** Configure the shared files
- notused% = Lot_CallSharedTool("ConfigSHARE()")
- notused% = Lot_CallSharedTool("AddSHAREIcons()")
-
- '** DONE
- UIPOP 1 '** Bring Down DB_PLEASEWAIT
- RestoreCursor curcursor&
-
- '** Win32: This should do nothing except bring up the success dlg.
- ConfigureAUTOEXEC
-
- notused1$ = Lot_CallProductFunctions("PostSuccessReg", gNEXT, FALSE, gALLPRODUCTS,"")
- 'IF automation$ = gTRUE$ THEN
- ' AutoInstallReboot
- 'END IF
-
-
- '**********************************************************************
- '******************** Distribution Install ****************************
- '**********************************************************************
-
- CASE gDISTRIBUTION$
-
- '** Initialize
- inf$ = GetIniKeyString (inifile$, "TOOLKIT", "BYWIREINFFILE")
- ReadInfFile inf$
-
- '** Product initialiation
- direction$ = Lot_CallProductFunctions("Init", direction$, TRUE, gALLPRODUCTS$, "GetSymbolValue(SYM_BASEDIR$)")
- IF direction$ = gBACK$ GOTO WELCOME
-
- '***********AUTOMATION code*************************************************
- IF automation$ = gTRUE$ THEN
- notused% = Lot_AutoGetProductDestDirSymbol ()
- ELSE
-
- '******************* Change Distribution Install *******************
-
- ChangeDistPath:
-
- lSize& = Lot_GetInfSectionSize(gDISTRIBUTIONFILES$) \ 1024
- SetListItem "IDC_TEXT", 1, STR$(lSize&) + gStrK$
-
- notused% = RegisterCallback("CALLBACK","DISTSIZEINSTALLCB")
- '** AUTOMATE: comment out next line and explicitly set directory,
- '** if you are not happy with the default
- '** dirSym$ = Reg_GetDirSymbolList(1)
- '** dirSym$ = GetListItem(dirSym$, 1)
- '** SetSymbolValue dirSym$, "c:\foo\"
- '** Lot_RefreshDestination(dirSym$)
- direction$ = PopupModalDlg (DB_CHOOSEPATHDIST, DB_CHOOSEPATHDIST)
-
-
- IF direction$ = gBACK$ GOTO SERVER_DISTRIBUTION
- END IF
-
- dirSym$ = Reg_GetDirSymbolList(1)
- nDirs% = GetListLength(dirSym$)
- IF nDirs% > 0 THEN
- dirSym$ = GetListItem(dirSym$, 1)
- destdir$ = GetSymbolValue(dirSym$)
- AddSectionFilesToCopyList gDISTRIBUTIONFILES$,_
- GetSymbolValue(SYM_STF_SRCDIR$),_
- destdir$
- END IF
-
- UIPOP 1 '** Bring down automation PLEASEWAIT
-
-
- IF automation$ = gTRUE$ THEN
- notused% = AutoCheckForSpace()
- ELSE
- IF CheckForSpace(DB_INSUFDISKSPACE) = FAILURE GOTO ChangeDistPath
- END IF
-
- '' These UI Pops have a funny interaction with CheckFOrSpace
- '' When Check for SPace putsup a dialog. (DAVE LOOK AT)
-
- '** Ask the user if we should copy files
- notused% = Lot_AutoWriteOutDebugFile()
-
- direction$ = PopupModalDlg (DB_BEGINCOPYING,DB_BEGINCOPYING)
- IF direction$ = gBACK$ GOTO ChangeDistPath
-
- '*****AUTOMATIONCODE********************************
- '*** Precopy Config processor
-
- '** Configuration before copying
- notused% = RemovePriorVersion("reset","buffer")
- notused1$ = Lot_CallProductFunctions("PreCopyConfig", direction$, FALSE, gALLPRODUCTS, "FALSE")
-
- '** Copy the distribution files
- longnotused& = SetSizeCheckMode(CLNG(0))
- IF GetSymbolValue(SYM_LOGFILE$) <> "" THEN
- DumpCopyList GetSymbolValue(SYM_LOGFILE$)
- END IF
-
- nbytes& = NumberOfBytesPerBillbd()
- notused1$ = Lot_CallOneProductFunction(1,"AddTheBillBoards", gNEXT, FALSE, CSTR(nbytes&))
- ''Display bmps centred in billboards
- SetSymbolValue SYM_BMP_DISPLAY_MODE$, "CENTERED"
- CopyFilesInCopyList
- ''Set it back to default now
- SetSymbolValue SYM_BMP_DISPLAY_MODE$, ""
-
- ' ** TV:
- 'notused1$ = Lot_CallProductFunctions("PostCopyConfig", direction$, FALSE, gALLPRODUCTS, "FALSE")
-
- '** Tell the user you are done
- rc$ = PopupModalDlg (DB_SUCCESS, DB_SUCCESS)
-
- notused1$ = Lot_CallProductFunctions("PostSuccessReg", gNEXT, FALSE, gALLPRODUCTS,"")
-
- '********************* END OF INSTALL CASES ***************************
-
- '** IF you get here then it is an error
- CASE ELSE
-
- ERROR STFQUIT
-
- END SELECT
-
- IF automation$ = gTRUE$ THEN
- '** TV:Clean up dialogs before quitting
- UIPopAll
- WriteToFile gLogFile$, LdString(SID_AUTOINST_COMPLETE)
- WriteToFile gLogFile$, LdString(SID_COMMLOGFILE_END)
- END
- END IF
- '*************************************************************************
- '********************** ERROR HANDLERS ***********************************
- '*************************************************************************
-
- '** If major error, this will exit the program
- MAINERROR:
- '** TV:Clean up dialogs before quitting
- UIPopAll
- IF GetSymbolValue(SYM_AUTOMATIONINST$) = gTRUE$ THEN
- WriteToFile gLogFile$, LdString(SID_AUTOINST_ERR)
- WriteToFile gLogFile$, LdString(SID_COMMLOGFILE_END)
- END IF
- END
-
- '** DND: Should we do anything else here?
- STFERR_:
- RESUME NEXT
-
- STFTOGGLEERR:
- RESUME NEXT
-
- END SUB
-
-
-
- '*************************************************************************
- '** FUNCTION DoDatalens(direction$) AS STRING
- '** Purpose: Take care of all the datalens stuff
- '**
- '**
- '** Author: DND and MMETH
- '** Arguments: SYM_NETWORK$
- '**
- '** Returns: gBACK$ or ""
- '**
- '*************************************************************************
-
- FUNCTION DoDatalens(BYVAL direction$) AS STRING
-
- DIM notused%, rc$, chptname$
- If direction$ = gBACK Then GOTO PARADOXUI
- %rem
- 'This is left over from CARMEN
- IF GetSymbolValue(SYM_NETWORK$) = gSTANDARD$ THEN
-
- '** For COMPLETE installs, remove some datalens stuff from
- '** the copylist.
- IF GetSymbolValue(SYM_SIZEOFINSTALL$) = gCOMPLETE$ THEN
- If (CINT(FIsKeywordinCopyList ("SHRPARADOXPRG")) <> FALSE) Then
- chptname$ = Lot_GetChapterFromKeyword("SHRPARADOXPRG")
- Lot_ToggleChapterFilesInCopyList chptname$
- end if
- If (CINT(FIsKeywordinCopyList ("SHRSQLPRG")) <> FALSE) Then
- chptname$ = Lot_GetChapterFromKeyword("SHRSQLPRG")
- Lot_ToggleChapterFilesInCopyList chptname$
- end if
- If (CINT(FIsKeywordinCopyList ("SHRINFORMIXPRG")) <> FALSE) Then
- chptname$ = Lot_GetChapterFromKeyword("SHRINFORMIXPRG")
- Lot_ToggleChapterFilesInCopyList chptname$
- end if
- If (CINT(FIsKeywordinCopyList ("SHRIBMPRG")) <> FALSE ) Then
- chptname$ = Lot_GetChapterFromKeyword("SHRIBMPRG")
- Lot_ToggleChapterFilesInCopyList chptname$
- end if
- If (CINT(FIsKeywordinCopyList ("SHRIBMPRG")) <> FALSE ) Then
- chptname$ = Lot_GetChapterFromKeyword("SHRIBMPRG")
- Lot_ToggleChapterFilesInCopyList chptname$
- end if
-
- END IF
-
- END IF
- %endrem
-
- '************** Standard SQL Server Dialog *************************
-
- SQLUI:
-
- IF Lot_CallSharedTool("Lot_IsSQLSelected()") <> FALSE THEN
-
- '** INSYMBOLS: ????
-
- notused% = RegisterCallback("SHARE", "SQLSERVERNAMECB")
- '** AUTOMATE: comment out next line and explicitly set SYM_SQLSERVERNAME$
- IF GetSymbolValue(SYM_AUTOMATIONINST$) = gTRUE$ THEN
- SetSymbolValue SYM_SQLSERVERNAME$, GetSymbolValue(SYM_AUTO_SQLSERVER)
- END IF
- direction$ = PopupModalDlg (DBM_SQL_SERVER_NAME, DBM_SQL_SERVER_NAME)
-
- IF direction$ = gBACK$ THEN
- DoDatalens = direction$
- EXIT FUNCTION
- END IF
- END IF
-
- '************** Standard Paradox Dialog ***************************
- PARADOXUI:
-
- IF Lot_CallSharedTool("Lot_IsParadoxSelected()") <> FALSE THEN
-
- '** INSYMBOLS: ????
-
- notused% = RegisterCallback("SHARE", "PARADOXNETWORKINFOCB")
- '** AUTOMATE: comment out next line and explicitly set SYM_PARADOXNETWORKINFO$
- IF GetSymbolValue(SYM_AUTOMATIONINST$) = gTRUE$ THEN
- SetSymbolValue SYM_PARADOXNETWORKINFO$, GetSymbolValue(SYM_AUTO_PARADOXINFO$)
- END IF
-
- direction$ = PopupModalDlg (DBM_PARADOX_NETWORK_INFORMATION, DBM_PARADOX_NETWORK_INFORMATION )
-
- '** OUTSYMBOLS: ????
-
- IF direction$ = gBACK$ THEN
- IF Lot_CallSharedTool("Lot_IsSQLSelected()") <> FALSE GOTO SQLUI
- DoDatalens = gBACK$
- EXIT FUNCTION
- END IF
- END IF
-
- DoDatalens = direction$
-
- END FUNCTION
-
-
- '*************************************************************************
- '** FUNCTION NumberOfBytesPerBillbd() AS LONG
- '** Purpose: Take care of all the datalens stuff
- '**
- '**
- '** Author: MMETH
- '** Arguments: NONE
- '**
- '** Returns: number of bytes per billboard
- '**
- '*************************************************************************
-
- FUNCTION NumberOfBytesPerBillbd() AS LONG
- DIM n%, i% ,j%, costs&, nBillboards%, nProducts%, UNCSym$
-
- ''**** COMPUTE THE number of bytes for each billboard to stay up
- costs& = LcbGetChapterCost("", "", SYM_COST$, "")
- n% = GetListLength(SYM_COST$)
- costs& = 0
- for i% = 1 to n%
- costs& = costs& + CLNG(GetListItem(SYM_COST$, i%))
- next
- j%=GetListLength("UNCVOLLIST")
- FOR i% = 1 to j%
- UNCSym$ = GetListItem("UNCVOLLIST",i%)
- costs& = costs& + CLNG(GetListItem(UNCSym$, UNC_COST))
- NEXT
- nProducts% = Reg_GetNumberOfProducts()
- nBillboards% = Reg_GetBillboardNumber(1)
- If nBillboards% = 0 Then
- NumberOfBytesPerBillbd = 0
- Else
- NumberOfBytesPerBillbd = costs&\nBillboards%
- End If
-
- END FUNCTION
-
-
- '*************************************************************************
- SUB SetTheBaseSymbol()
- '** IN SYMBOLS ::: SYM_NETWORK$
- '** OUT SYMBOLS::: SYM_BASEDIR$
- '*************************************************************************
- DIM network$, defBase$, lcbSpace&, defDir$, i%, nProducts%, s$
- DIM keyvalue$, gbuf$, nsize&, ret&, bRegistryPath%
-
- bRegistryPath% = FALSE
- network$ = GetSymbolValue(SYM_NETWORK$)
-
- '** Find out if there's already installed products by querying registry
- '** Standard takes its value from HLM\SOFTWARE\Lotus\components\LocalPath
- '** Node takes its value from HCU\SOFTWARE\Lotus\components\User Path
- SELECT CASE network$
- CASE gSTANDARD$
- keyvalue$ = "LocalPath"
- ret& = Lot_GetRegKeyValueEx(HKEY_LOCAL_MACHINE, gREGLOTUSCOMP, keyvalue$, 0, gbuf$, nsize&)
- CASE gNODE$
- keyvalue$ = "User Path"
- ret& = Lot_GetRegKeyValueEx(HKEY_CURRENT_USER, gREGLOTUSCOMP, keyvalue$, 0, gbuf$, nsize&)
- END SELECT
- ' Strip off "compnent" part, e.g. d:\lotus\compnent ==> d:\lotus\
- IF gbuf$ <> "" AND IsDriveMapped(gbuf$) <> FALSE THEN
- s$ = OneUp(NullTrim(gbuf$))
- IF Lot_IsDirWritable(Lot_TrimEndSlash(s$)) THEN
- defdir$ = s$
- bRegistryPath% = TRUE
- END IF
- END IF
-
- '** Set the PARENT DIRECTORY based on minimum space required
- '** if not already gotten from registry
- IF bRegistryPath% = FALSE THEN
- lcbSpace& = 0
- defBase$ = "lotus\"
- nProducts% = Reg_GetNumberOfProducts()
- FOR i% = 1 to nProducts%
- lcbSpace& = lcbSpace& + Reg_GetProdMinSize(i%)
- NEXT
- defDir$ = Lot_GetAllHardDrive(lcbSpace&, defBase$)
- IF defDir$ = "" THEN
- defDir$ = LCASE$(GetListItem(SYM_LOCALHARDDRIVES$, 1)) + ":\" + defBase$
- END IF
- END IF
-
- SetSymbolValue SYM_BASEDIR$, defDir$
-
- '*** AUTOMATION****************************************
- IF bRegistryPath% <> TRUE THEN
- IF GetSymbolValue(SYM_AUTOMATIONINST$) = gTRUE$ AND _
- GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSINGLE$ THEN
- AutoSetParentDir
- END IF
- END IF
-
- ' Not sure if we still use SYM_BASE16DIR$
- SetSymbolValue SYM_BASE16DIR$, GetSymbolValue(SYM_BASEDIR$)
-
- END SUB
-
- SUB GetNamesFromRegistry(buf1$, buf2$, RegLoc$)
- DIM ReturnVal&
-
- buf1$=CreateBuffer(260)
- ReturnVal&=260
- ReturnVal& = Lot_GetRegKeyValueEx(HKEY_LOCAL_MACHINE,_
- RegLoc$, gREGUSERNAME, 0, buf1$, ReturnVal&)
- buf2$=CreateBuffer(260)
- ReturnVal&=260
- ReturnVal& = Lot_GetRegKeyValueEx(HKEY_LOCAL_MACHINE,_
- RegLoc$, gREGORGNAME, 0, buf2$, ReturnVal&)
- buf1$ = LTrim$(NullTrim(buf1$))
- buf1$ = Trim$(buf1$)
- buf2$ = LTrim$(NullTrim(buf2$))
- buf2$ = Trim$(buf2$)
- END SUB
-
- SUB InitInstall
- DIM hUser&, notused%
- DIM buf1 AS STRING : buf1$ = CreateBuffer(80)
- DIM buf2 AS STRING : buf2$ = CreateBuffer(80)
- DIM count%, network$,ReturnVal&
-
- '** Initialize the Setup API
- '-- SetUpAPI moved to toolkit
-
- '****************************************
- '******* INITIALIZE ALL GLOBAL SYMBOLS **
- '****************************************
-
- '** Default is Single, SmartSuite will override if it is present
- '** Even for single product installs there may be more that one
- SetSymbolValue SYM_SINGLESMARTSUITE, gSINGLE$
-
- '** Set up a symbol for where the copylist log will get written
- IF ENVIRON$(gLOTUS_COPYLIST$) <> "" THEN
- SetSymbolValue SYM_LOGFILE$, GetWindowsDir() + gCOPYLISTLOG$
- END IF
-
- '** Initialize the Win and Winsys symbols
- Lot_InitializeWinWinsysSym
-
- '** Initialize the expected len of subdirs in *.inf paths
- SetSymbolValue SYM_DOSMAXPATHDIFF$,"20"
-
- '** Initialize the gEXTRA list to allow for fudge
- '** on the windows drive. A deseprate application can add to it.
- Lot_InitializeEXTRA
-
- ''We show bitmaps in 3 ways, with transparent backrgound (default), streched or centred
- SetSymbolValue SYM_BMP_DISPLAY_MODE$, ""
-
- '** Get The default Name & Company
- hUser& = GetModuleHandle(gUSER$)
- notused% = LoadString (hUser&, USERNAME, buf1$, 80)
- notused% = LoadString (hUser&, COMPANYNAME, buf2$, 80)
-
- buf1$ = LTrim$(NullTrim(buf1$))
- buf1$ = Trim$(buf1$)
- buf2$ = LTrim$(NullTrim(buf2$))
- buf2$ = Trim$(buf2$)
-
- IF buf1$="" THEN
- GetNamesFromRegistry buf1$, buf2$, gREGWINNAME
- IF buf1$="" THEN
- GetNamesFromRegistry buf1$, buf2$, gREGWINNTNAME
- IF buf1$="" THEN
- buf1$=CreateBuffer(260)
- ReturnVal&=260
- notused%=GetUserName(buf1$,ReturnVal&)
- buf1$=NullTrim(buf1$)
- buf2$=buf1$
- END IF
- END IF
- END IF
-
- SetSymbolValue SYM_NAME$, RTrim$(NullTrim(buf1$))
- SetSymbolValue SYM_COMPANY$, RTrim$(NullTrim(buf2$))
-
- '***********AUTOMATION code*************************************************
- IF GetSymbolValue(SYM_AUTOMATIONINST$) = "1" THEN
- SetSymbolValue SYM_AUTOMATIONINST$, gTRUE$
- '*** default must be lotinst.log for automation, set in cmdline processing
- '*** gLogFile$ = GetWindowsDir() + "lotinst.log"
- ELSE
- SetSymbolValue SYM_AUTOMATIONINST$, gFALSE$
- END IF
-
- IF GetSymbolValue(SYM_LOGGING$) = "1" THEN
- IF GetSymbolValue(SYM_LOGGINGPATH$) <> "" THEN
- gLogFile$ = GetSymbolValue(SYM_LOGGINGPATH$)
- END IF
- END IF
-
- '** Check to see if command line asks for Node Install
- '** TV: This should be independent of automation
- IF INSTR(UCASE$(COMMAND$), "/N") <> 0 THEN
- SetSymbolValue SYM_NETWORK$, gNODE$
- ELSE
- IF GetSymbolValue(SYM_AUTOMATIONINST$) = gTRUE$ THEN
- network$ = Lot_AutoGetInstallType()
- SetSymbolValue SYM_NETWORK$, network$
- ELSE
- SetSymbolValue SYM_NETWORK$, gSTANDARD$
- END IF
- END IF
-
-
- '****************************************
- '******* MISC TRIVIA (Initializing) *****
- '****************************************
-
- '** Even though a Window title is not shown, we need
- '** to set the title, so it shows up in the task list.
- SetTitle LdString(SID_TKT_STD_TITLE)
-
- '** The default location of the copy gauge is centered at screen bottom
- SetCopyGaugePosition -1,32000
-
- END SUB
-
- '*************************************************************************
- '** SUB ConfigureAUTOEXEC
- '**
- '** Purpose: Configure AUTOEXEC.BAT after copying files.
- '**
- '** Author: CHRISTOPHER MOY
- '** Arguments: None
- '** Returns: NONE
- '*************************************************************************
- SUB ConfigureAUTOEXEC
- DIM n%, i%, notused%, notused1$, rc$
- DIM hwnd%, lr%
-
- '** DETERMINE IF AUTOEXEC.BAT NEEDS MODIFICATIONS
- SetSymbolValue SYM_NEEDSHARE$, gFALSE$
- SetSymbolValue SYM_NEEDNOTES$, gFALSE$
-
- '**** Win32 does not require autoexec modifictaion *********
- %rem
-
- n% = Reg_GetNumberOfProducts()
-
- FOR i% = 1 to n%
- IF Reg_GetSHAREEXESupport(i%) <> FALSE THEN
- '** IF IsShareInAUTOEXEC() = FALSE THEN '** if share is not in autoexec
- '** SetSymbolValue SYM_NEEDSHARE$, gTRUE$ '** use symbols?
- '** EXIT FOR
- '** ELSE
- IF IsShareInstalled() = FALSE THEN '**if share is in autoexec
- SetSymbolValue SYM_NEEDSHARE$, gTRUE$ '**but not running.
- EXIT FOR
- END IF
- END IF
- NEXT
-
- FOR i% = 1 to n%
- IF Reg_GetNotesSupport(i%) <> FALSE THEN
- IF IsNotesInPath() = FALSE THEN
- SetSymbolValue SYM_NEEDNOTES$, gTRUE$ '** use symbols?
- EXIT FOR
- END IF
- END IF
- NEXT
-
- IF GetSymbolValue(SYM_NEEDSHARE$) = gTRUE$ OR GetSymbolValue(SYM_NEEDNOTES$) = gTRUE$ THEN
- IF GetSymbolValue(SYM_AUTOMATIONINST$) <> gTRUE$ THEN
- notused% = RegisterCallback("CALLBACK", "AUTOEXECCB")
- notused1$ = PopupModalDlg(DB_AUTOEXEC, DB_AUTOEXEC)
-
- '** Get value in SYM_AUTOEXEC_CHOICE$ from button
- '** pressed in DB_AUTOEXEC dialog.
- notused% = RegisterCallback("CALLBACK", "INSTALLCOMPLETECB")
-
- SELECT CASE GetSymbolValue(SYM_AUTOEXEC_CHOICE$)
-
- CASE "AUTO"
- notused1$ = PopupModalDlg(DB_SUCCESS_AUTO, DB_SUCCESS_AUTO)
-
- CASE "AUTOCOPY"
- notused1$ = PopupModalDlg(DB_SUCCESS_AUTOCOPY, DB_SUCCESS_AUTOCOPY)
-
- CASE "MAN"
- notused1$ = PopupModalDlg(DB_SUCCESS_AUTOMAN, DB_SUCCESS_AUTOMAN)
-
- END SELECT
- ELSE
- notused% = Lot_AutoConfigureAutoexec()
- '** Tell the user we are all done
- rc$ = PopupModalDlg(DB_SUCCESS, DB_SUCCESS)
- END IF
-
- ELSE
- '** Tell the user we are all done
- rc$ = PopupModalDlg(DB_SUCCESS, DB_SUCCESS)
-
- END IF
-
- %endrem
- '**** Win32 does not require autoexec modifictaion *********
-
- '** Tell the user we are all done
-
- IF ExitExecRestart=FALSE THEN
- rc$ = PopupModalDlg(DB_SUCCESS_REBOOT, DB_SUCCESS_REBOOT)
- IF rc$="OK" THEN
- hwnd%=FindWindow("LInstallWClass",LdString(SID_INST_WINDOW_TITLE))
- lr%=SendMessage(hwnd%, WM_COMMAND, UM_REBOOTFLAG, 0)
- ELSE
- RebootLater% = TRUE
- END IF
- ELSE
-
- rc$ = PopupModalDlg(DB_SUCCESS, DB_SUCCESS)
-
- END IF
-
- END SUB
-
- SUB InitStickyCopyList(network$, direction$)
- '*************************************************************************
- '** Purpose: Initialize copy list, while preserving user settings from a
- '** previous customize; if the install type changes, local global flag
- '** FirstTime$ is reset. This flag is reset when the user backs up to
- '** the xxxSSAPPSEL portion of the code
- '**
- '** Author: JMDonohue
- '** Arguments:
- '** network$ install type: standard, server, node
- '** direction$ direction
- '*************************************************************************
- IF FirstTime$ <> network$ THEN
- ResetCopyList '** Reset the copylist
- END IF
- IF FirstTime$ <> network$ OR _
- GetSymbolValue(SYM_SIZEOFINSTALL$) <> gCUSTOM$ THEN
- direction$ = Lot_CallProductFunctions("InitCopyList", direction$, FALSE, gALLPRODUCTS$, "")
- FirstTime$ = network$
- END IF
- END SUB
-
- DIM ServerWinDir$
- DIM ServerWinSysDir$
-
- SUB Lot_DetectSharedWindows()
- '*************************************************************************
- '** Purpose: Determine if this is a shared windows installation.
- '** For a server install determine if the shared windows location is
- '** writeable. If writeable, asks the user to confirm copying files
- '** there, if not ask the user to confirm a standard server install.
- '** Sets the value of global gIsSharedWindows%
- '**
- '** Author: JMDonohue
- '** Arguments: NONE
- '*************************************************************************
- DIM windir$, network$, s$, i%
- DIM IsDirWriteable%, direction$
- '' We assume that if there is a file names 'machines.ini' in the Windows
- '' directory, then it it
- s$ = GetWindowsSysDir()
- ServerWinSysDir$ = s$
- i% = Len(s$) 'Assume last character is \
- DO
- i% = i% - 1
- LOOP UNTIL Mid(s$, i%, 1) = "\"
- windir$ = Mid(s$, 1, i%)
- ServerWinDir$ = windir$
- IF DoesFileExist(windir$ + "machines.ini", femExists) THEN
- gIsSharedWindows% = TRUE
- ELSE
- gIsSharedWindows% = FALSE
- END IF
- network$ = GetSymbolValue(SYM_NETWORK$)
- IF network$ <> gSERVER$ THEN EXIT SUB
- IF gIsSharedWindows% = FALSE THEN EXIT SUB
-
- ' Set the values of these symbols to point to the shared server
- SetSymbolValue SYM_WINDIR$, ServerWinDir$
- SetSymbolValue SYM_WINSYSDIR$,ServerWinSysDir$
-
- '' For server, this is a shared windows install only if location writeable
- IsDirWriteable% = CInt(Lot_IsDirWritable(ServerWinSysDir$))
- IF IsDirWriteable% = 0 THEN
- gIsSharedWindows% = FALSE
- direction$ = Lot_SharedWindowsDlg (DB_NOSHAREDWINDOWS)
- END IF
-
- END SUB
-
- SUB Lot_DoServerSharedWindows()
- '*************************************************************************
- '** Purpose: For server shared windows, copy the system
- '** and font files to the shared server locations, keyed on sections in the
- '** inf file with the following special destination directory symbols:
- '**
- '** SYM_LOTUSFONTSDIR$, SYM_WINDIR$ and SYM_WINSYSDIR$
- '**
- '** Author: JMDonohue
- '** Arguments: NONE
- '*************************************************************************
- DIM chapter$, DirSym$, InorOut%
- DIM SpecialDirectorySymbolList LIST AS INTEGER
- DIM WindowsChaptersList LIST AS INTEGER
- SpecialDirectorySymbolList(SYM_WINDIR$) = 1
- SpecialDirectorySymbolList(SYM_WINSYSDIR$) = 1
- SpecialDirectorySymbolList(SYM_LOTUSFONTSDIR$) = 1
-
- IF gIsSharedWindows% = FALSE THEN EXIT SUB
-
- ' We have a writeable shared windows location,
- ' Copy the system files to the shared windows location
- ' (have already been copied to normal server location)
-
- ' Find the chapters to copy
- chapter$ = Lot_GetFirst("", F_INOROUT)
- WHILE (chapter$ <> "")
- DirSym$ = Lot_GetChapterValStr(chapter$, F_DESTDIRSYM)
- IF IsElement(SpecialDirectorySymbolList(DirSym$)) = TRUE THEN
- WindowsChaptersList(chapter$) = 1
- END IF
- chapter$ = Lot_GetNext()
- WEND
-
- ' Turn off all sections, turn on the ones in list
- chapter$ = Lot_GetFirst("", F_NOTHING)
- WHILE (chapter$ <> "")
- Lot_SetChapterFilesInCopyListInOrOut chapter$, 0
- chapter$ = Lot_GetNext()
- WEND
-
- FORALL sym IN WindowsChaptersList
- chapter$ = ListTag(sym)
- Lot_SetChapterFilesInCopyListInOrOut chapter$, 1
- END FORALL
-
- ' Set the values of these symbols to point to the shared server
- SetSymbolValue SYM_WINDIR$, ServerWinDir$
- SetSymbolValue SYM_WINSYSDIR$,ServerWinSysDir$
- Lot_SetLotusFontsDir
-
- Lot_RefreshDestination(SYM_WINDIR$)
- Lot_RefreshDestination(SYM_WINSYSDIR$)
- CopyFilesInCopyList
- ERASE WindowsChaptersList
-
- END SUB
-
- PUBLIC SUB Lot_SetLotusFontsDir
- '*************************************************************************
- '** Purpose: Sets the value of the special destination directory symbol
- '** LOTUSFONTSDIR to the official Windows fonts directory
- '** NOTE: SYM_WINDIR$ and SYM_WINSYSDIR$ must have been set prior to call
- '**
- '** Author: JMDonohue
- '**
- '*************************************************************************
- IF IsNewShell() THEN
- SetSymbolValue SYM_LOTUSFONTSDIR$, GetSymbolValue(SYM_WINDIR$) _
- + LdString(SID_FONTS95_DIR) + "\"
- ELSE
- SetSymbolValue SYM_LOTUSFONTSDIR$, GetSymbolValue(SYM_WINSYSDIR$)
- END IF
- Lot_RefreshDestination (SYM_LOTUSFONTSDIR$)
- END SUB
-
- SUB Lot_DoSharedDLLs()
- '*************************************************************************
- '** Purpose: Traverses the copy list looking for sections whose section
- '** keyword ends in "_SHRCNT", and increments the usage count in the registry
- '** for these files
- '**
- '** Author: JMDonohue
- '**************************************************************************
- DIM s$, szSym$, szSect$, i%, n%, chapter$, Keyword$, DestDir$
- DIM SharedDLLList LIST AS STRING
- DIM ProdDLL$
-
- szSym$ = "SHAREDDLLS"
- '' Traverse all copy list sections, find files in those using "_SHRCNT" suffix
- chapter$ = Lot_GetFirst("", F_INOROUT)
- WHILE (chapter$ <> "")
- Keyword$ = Lot_GetChapterValStr(chapter$, F_KEYWORD)
- DestDir$ = Lot_GetChapterValStr(chapter$, F_DESTDIR)
- s$ = Right$(Keyword$,7)
- IF s$ = "_SHRCNT" THEN
- szSect$ = Lot_GetChapterValStr(chapter$, F_NOTHING)
- ' Get the renamed filename if it exists
- n% = FGetSectionFileList (szSym$, szSect$, 1)
- n% = GetListLength(szSym$)
- '' For each shared DLL in section, create fully qualified pathname
- '' and add to list of filenames
- FOR i% = 1 TO n%
- s$ = DestDir$ + GetListItem(szSym$, i%)
- '' Save an entry for each product that uses the file(prodno-file)
- ProdDLL$ = LEFT(chapter$,1) + "-" + s$
- IF ISELEMENT(SharedDLLList(ProdDLL$)) = FALSE THEN _
- SharedDLLList(ProdDLL$) = s$
- NEXT
- RemoveSymbol szSym$
- END IF
- chapter$ = Lot_GetNext()
- WEND
- '' Traverse list, increment the usage count in the registry
- FORALL sym IN SharedDLLList
- IncrementSharedDLLCount(sym)
- END FORALL
-
- END SUB
-
-
- SUB TurnOffSharedWinsysSections()
- '****************************************************************************
- '** Purpose: For a shared windows installation, don't copy system files, since
- '** these should already be on the shared windows server
- '**
- '** Author: JMD
- '**
- '****************************************************************************
- DIM DirSym$, chapter$
- IF gIsSharedWindows% = FALSE THEN EXIT SUB
-
- ' Find the chapters to turn off
- chapter$ = Lot_GetFirst("", F_INOROUT)
- WHILE (chapter$ <> "")
- DirSym$ = Lot_GetChapterValStr(chapter$, F_DESTDIRSYM)
- IF DirSym$ = SYM_WINSYSDIR$ THEN
- Lot_SetChapterFilesInCopyListInOrOut chapter$, 0
- END IF
- chapter$ = Lot_GetNext()
- WEND
- END SUB
-