home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 May / PCW596.iso / wtest / bentley / mstation / dos / mstation.inf < prev    next >
INI File  |  1995-10-20  |  36KB  |  925 lines

  1. DefineVariables
  2.     Number [UnAttended]         
  3.     Text   [UnattendedSwitchString] := -S:
  4.     Number [SkipUnattendedSwitchString]
  5.     Text   [InstallType]
  6.     Text   [BentleyProductName] := MicroStation 95      
  7.     Text   [DefaultRootDirectoryName] := USTN55 
  8.     Text   [BetaInstallationDirectory]
  9.     Text   [BetaRootDirectoryName] := USTN55
  10.     Text   [InstallationDirectoryCFGFormat]
  11.     Text   [PercentChar] := %
  12.     Text   [FileName]
  13.     Text   [ExtKey]
  14.     Text   [ConfirmationDialogHeader]
  15.     Text   [DLLCopyCommand]
  16.     Text   [DLLCopyDestDirectory]
  17.     Text   [DLLCopyDestFile]
  18.     Text   [DLLCopySourceDirectory]
  19.     Text   [DLLCopySourceFile]
  20.     Text   [CheckDLLVersionDifferencesResult]
  21.     Text   [DialogHeader]
  22.     Text   [DialogItems]         
  23. ;; Count of DialogOptions
  24.     Text   [DialogOption1]
  25.     Text   [DialogOption2]
  26.     Text   [DialogOption3]
  27.     Text   [DialogOption4]
  28.     Text   [DialogOption5]       
  29. ;; DialogButtons only handles 5 now
  30.     Text   [CommentString]      ;; For BreakStringIntoThreeLines Func
  31.     Text   [CommentString1]     ;; For BreakStringIntoThreeLines Func
  32.     Text   [CommentString2]     ;; For BreakStringIntoThreeLines Func
  33.     Text   [CommentString3]     ;; For BreakStringIntoThreeLines Func
  34.     Number [CommentLineBreak]    ;; For BreakStringIntoThreeLines Func
  35.     Number [CommentLineStart]   ;; For BreakStringIntoThreeLines Func
  36.     Text   [DialogComment1]
  37.     Text   [DialogComment1a]
  38.     Text   [DialogComment1b]
  39.     Text   [DialogComment1c]
  40.     Text   [DialogComment2]
  41.     Text   [DialogComment2a]
  42.     Text   [DialogComment2b]
  43.     Text   [DialogComment2c]
  44.     Text   [DialogComment3]
  45.     Text   [DialogComment3a]
  46.     Text   [DialogComment3b]
  47.     Text   [DialogComment3c]
  48.     Text   [DialogComment4]
  49.     Text   [DialogComment4a]
  50.     Text   [DialogComment4b]
  51.     Text   [DialogComment4c]
  52.     Text   [DialogComment5] 
  53.     Text   [DialogComment5a]
  54.     Text   [DialogComment5b]
  55.     Text   [DialogComment5c]
  56. ;; DialogButtons only handles 5 now
  57.     Number [DialogResponse]      
  58. ;; Option selected.
  59.     Number [DialogHeight]
  60.     Number [DialogWidth]
  61.     Number [DialogItemHeight]
  62.     Number [DialogItemWidth]
  63.     Number [DialogPositionX]
  64.     Number [DialogPositionY]
  65. ;; Group Sizes    
  66.     Number  [SizeRequiredFiles]
  67.     Number  [SizeRecommendedAdditions]
  68.     Number  [SizeOnlineDocumentation]
  69.     Number  [SizeUtilities]
  70.     Number  [SizeMDETools]
  71.     Number  [SizeMDEExamples]
  72.     Number  [SizeDatabaseOracle]
  73.     Number  [SizeDatabaseDBaseIV]
  74.     Number  [SizeDatabaseDBaseIII]
  75.     Number  [SizeDatabaseFoxBase]
  76.     Number  [SizeDatabaseRIS]
  77.     Number  [SizeWorkspaceArchitectural]
  78.     Number  [SizeWorkspaceCivil]
  79.     Number  [SizeWorkspaceMechanical]
  80.     Number  [SizeWorkspaceMapping]
  81. ;; Choices
  82.     Number  [ChoiceEnumerator]
  83.     Number  [ChoiceRequiredFiles]
  84.     Number  [ChoiceRecommendedAdditions]
  85.     Number  [ChoiceOnlineDocumentation]
  86.     Number  [ChoiceUtilities]
  87.     Number  [ChoiceMDETools]
  88.     Number  [ChoiceMDEExamples]
  89.     Number  [ChoiceDatabaseOracle]
  90.     Number  [ChoiceDatabaseDBaseIV]
  91.     Number  [ChoiceDatabaseDBaseIII]
  92.     Number  [ChoiceDatabaseFoxBase]
  93.     Number  [ChoiceDatabaseRIS]
  94.     Number  [ChoiceWorkspaceArchitectural]
  95.     Number  [ChoiceWorkspaceCivil]
  96.     Number  [ChoiceWorkspaceMechanical]
  97.     Number  [ChoiceWorkspaceMapping]
  98.     Number  [GroupRequiredFiles] := 1
  99.     Number  [GroupRecommendedAdditions] := 2
  100.     Number  [GroupOnlineDocumentation] := 4
  101.     Number  [GroupUtilities] := 5
  102.     Number  [GroupMDETools] := 6
  103.     Number  [GroupMDEExamples] := 7
  104.     Number  [GroupDatabaseOracle] := 10
  105.     Number  [GroupDatabaseDBaseIV] := 11
  106.     Number  [GroupDatabaseDBaseIII] := 12
  107.     Number  [GroupDatabaseFoxBase] := 13
  108.     Number  [GroupDatabaseRIS] := 14
  109.     Number  [GroupWorkspaceArchitectural] := 91
  110.     Number  [GroupWorkspaceCivil] := 92
  111.     Number  [GroupWorkspaceMechanical] := 94
  112.     Number  [GroupWorkspaceMapping] := 93
  113. EndDefineVariables
  114. ;;      Set installer configuration
  115. ;;If .NOT. DirectoryExists [InstallFromDirectory]
  116. ;;    Dialog
  117. ;;      If you are trying to install from a network drive, 
  118. ;;      please mount the drive before running [BentleyProductName] Setup.
  119. ;;    EndDialog
  120. ;;    SoLong    
  121. ;;EndIf
  122. SetReadOnlyInquiry off
  123. SetReplacementInquiry off
  124. SetAllowExit on
  125. SetCheckmarks Off
  126. [ExtKey] := <Esc>
  127. LetButton <Esc> Do dosExitProc
  128. Procedure dosExitProc
  129.     Dialog [YesOrNo1]
  130.     Please confirm that you wish to quit installing.
  131.     EndDialog
  132.     If [YesOrNo1] = YesCharacter
  133.     SoLong
  134.     EndIf
  135. EndProcedure
  136. SetTopLineAttrTo WhiteOnBlue
  137. SetTopLineTo "[BentleyProductName] Installation Program"
  138. SetCompletionStatusTo Unfinished
  139. [UnAttended] := 0
  140. ;;      Check if user requests unattended installation
  141. Procedure ShowUnattendedInstallAnnounceBox
  142.     TextBox
  143.     ;; StartTranslateAllLines
  144.     Welcome to the [BentleyProductName] Installation Program
  145.     The program is performing an unattended
  146.     installation of [BentleyProductName] files
  147.         from the options described in [FileName].
  148.     You need take no further action until the 
  149.     installation is complete.
  150.     ;; EndTranslateAllLines
  151.     EndTextBox
  152. EndProcedure
  153.     ;;      Get File Name
  154.     [SkipUnattendedSwitchString] := LengthOf [UnattendedSwitchString]
  155.     [SkipUnattendedSwitchString] := [SkipUnattendedSwitchString] + 1
  156.     if [CommandLine1] contains [UnattendedSwitchString]
  157.         [FileName] := SubstringOf [CommandLine1] from [SkipUnattendedSwitchString] to End
  158.     GoTo [Point10]
  159.     endif
  160.     if [CommandLine2] contains [UnattendedSwitchString]
  161.     [FileName] := SubstringOf [CommandLine2] from [SkipUnattendedSwitchString] to End
  162.     GoTo [Point10]
  163.     endif
  164.     if [CommandLine3] contains [UnattendedSwitchString]
  165.     [FileName] := SubstringOf [CommandLine3] from [SkipUnattendedSwitchString] to End
  166.     GoTo [Point10]
  167.     endif
  168.     if [CommandLine4] contains [UnattendedSwitchString]
  169.     [FileName] := SubstringOf [CommandLine4] from [SkipUnattendedSwitchString] to End
  170.     GoTo [Point10]
  171.     endif
  172.     if [CommandLine5] contains [UnattendedSwitchString]
  173.     [FileName] := SubstringOf [CommandLine5] from [SkipUnattendedSwitchString] to End
  174.     GoTo [Point10]
  175.     endif
  176.     if [CommandLine6] contains [UnattendedSwitchString]
  177.     [FileName] := SubstringOf [CommandLine6] from [SkipUnattendedSwitchString] to End
  178.     GoTo [Point10]
  179.     endif
  180.     if [CommandLine7] contains [UnattendedSwitchString]
  181.     [FileName] := SubstringOf [CommandLine7] from [SkipUnattendedSwitchString] to End
  182.     GoTo [Point10]
  183.     endif
  184.     if [CommandLine8] contains [UnattendedSwitchString]
  185.     [FileName] := SubstringOf [CommandLine8] from [SkipUnattendedSwitchString] to End
  186.     GoTo [Point10]
  187.     endif
  188.     if [CommandLine9] contains [UnattendedSwitchString]
  189.     [FileName] := SubstringOf [CommandLine9] from [SkipUnattendedSwitchString] to End
  190.     GoTo [Point10]
  191.     endif
  192.     GoTo Label_BeginAttendedInstallation
  193.     ;;      Check if settings file exists
  194.     [Point10]
  195.     do ShowUnattendedInstallAnnounceBox
  196.     if FileExists [FileName]
  197.     Else
  198.         Dialog UseHeader "[BentleyProductName] Unattended Installation Error"
  199.         ;; StartTranslateAllLines
  200.         The specified unattended installation options description file 
  201.         ("[FileName]") was not found.
  202.         ;; EndTranslateAllLines
  203.         EndDialog
  204.     Goto [Point30]
  205.     EndIf
  206.     ;;      Examine file to get settings
  207.     ExamineTextFile [FileName]
  208.     [String4] := SettingFor DestPath
  209.     [InstallType] := SettingFor InstallType
  210.     [String1] := SettingFor Name
  211.     [String2] := SettingFor Organization
  212.     [String3] := SettingFor Serial
  213.     ForgetTextFile
  214.     TextBox @xy(Center,18)
  215.     ;; StartTranslateAllLines  
  216.     Installing to directory [String4],
  217.     installation type : [InstallType]
  218.     ;; EndTranslateAllLines
  219.     endTextBox
  220.     ;;      Select installation mode
  221.     [InstallationDirectory] := [string4]
  222.     if [InstallType] = complete
  223.     do doinstallall
  224.     Endif
  225.     if [InstallType] = fullnomde
  226.     do doinstallfull
  227.     Endif
  228.     if [InstallType] = minmde
  229.     do dominimalmde
  230.     Endif
  231.     if [InstallType] = minimum
  232.     do dominimal
  233.     Endif                     
  234.     if [InstallType] = absmin
  235.     do doabsmin
  236.     Endif
  237.     [Number1] := quesize
  238.     if [Number1] = 0
  239.         If [InstallType] = BlankString
  240.         [InstallType] := <Undefined In File>
  241.         EndIf
  242.         Dialog UseHeader "[BentleyProductName] Unattended Installation Error"
  243.         ;; StartTranslateAllLines
  244.         Invalid option in Unattended Installation description file 
  245.         for InstallType: "[InstallType]"
  246.         Use complete, fullnomde, minmde, minimum, or absmin.
  247.         ;; EndTranslateAllLines
  248.         EndDialog
  249.     goto [Point30]
  250.     endif
  251.     ;;      Doublecheck if there is space on target drive
  252.     [Number1] := FreeSpaceOnDrive InstallationDrive
  253.     [Number2] := QueSize
  254.     if [Number1] < [Number2]
  255.         Dialog UseHeader "[BentleyProductName] Unattended Installation Error"
  256.         ;; StartTranslateAllLines
  257.         Insufficient space on installation drive: InstallationDrive.
  258.         Available: [Number1]
  259.         Required: [Number2]
  260.         ;; EndTranslateAllLines
  261.         EndDialog
  262.     goto [Point30]
  263.     endif
  264.     ;;      Copy files...
  265.     [UnAttended] := 1
  266.     goto [Point50]
  267. ;; end if commandline contains /s:
  268. :Label_BeginAttendedInstallation
  269. ;;      We get here if installation is interactive
  270. [YesOrNo1] := YesCharacter
  271. Dialog [YesOrNo1] UseHeader "[BentleyProductName] Installation"
  272. ;; StartTranslateAllLines
  273. Welcome to the [BentleyProductName] Installation Program
  274. This program installs [BentleyProductName] on your system.
  275. Press arrows to select options, the space bar to include
  276. in installation list (where applicable), then press Enter
  277. or Return to execute them. To exit this program, press [ExtKey].
  278. Do you consent to be bound by the terms and conditions
  279. of the license accompanying this software?  The license 
  280. is in the file "license.txt" at the root of the media 
  281. containing the software.
  282. ;; EndTranslateAllLines
  283. EndDialog
  284. If [YesOrNo1] = NoCharacter
  285.     SoLong
  286. EndIf
  287. ;;      This is Main installation Dialog box
  288. [Point1]
  289. DefineDrive [InstallFromDrive] FIXED
  290. SetBottomLineAttrTo BlueOnLightGray
  291. SetBottomLineTo "  Arrows - Select   <Enter> - Execute   [ExtKey] - Quit  "
  292. [Number1] := sizeofgroup 1
  293. [Number2] := [Number1] + sizeofgroup 2 + sizeofgroup 4 + sizeofgroup 5
  294. [Number2] := [Number2] + sizeofgroup 10 + sizeofgroup 11 + sizeofgroup 12
  295. [Number2] := [Number2] + sizeofgroup [GroupDatabaseRIS]
  296. [Number2] := [Number2] + sizeofgroup 13 + sizeofgroup 91
  297. [Number2] := [Number2] + sizeofgroup 92 + sizeofgroup 93 + sizeofgroup 94
  298. [Number3] := [Number2] + sizeofgroup 6 + sizeofgroup 7
  299. [Number1] := [Number1] / 1048576
  300. [Number2] := [Number2] / 1048576
  301. [Number3] := [Number3] / 1048576
  302. [DialogHeader] := "Please Select Type Of Installation"
  303. [DialogItems] := 4
  304. [DialogOption1] := "Complete Installation"
  305. [DialogComment1] := "Approximately [Number3] MB Disk Space Required."
  306. [DialogOption2] := "[BentleyProductName] without MDE"
  307. [DialogComment2] := "Omit the [BentleyProductName] Development Environment.  Approximately [Number2] MB Disk Space Required."
  308. [DialogOption3] := "Minimum Installation"
  309. [DialogComment3] := "VERY limited installation.  No help files or examples will be installed.  Approximately [Number1] MB Disk Space Required."
  310. [DialogOption4] := "Custom Installation..."
  311. [DialogComment4] := "Select your own specific set of files to install."
  312. do DialogButtons
  313. InCase [DialogResponse] is
  314.     =1: do doinstallall
  315.     =2: do doinstallfull
  316.     =3: do doabsmin
  317.     =4: do docustom
  318. EndInCase
  319. ;;      Full installation
  320. procedure doinstallall
  321.   UnQueAllFiles
  322.   quefilegroup [GroupRequiredFiles] 
  323.   quefilegroup [GroupRecommendedAdditions]
  324.   quefilegroup [GroupOnlineDocumentation]
  325.   quefilegroup [GroupUtilities]
  326.   quefilegroup [GroupMDETools]
  327.   quefilegroup [GroupMDEExamples]
  328.   quefilegroup [GroupDatabaseOracle]
  329.   quefilegroup [GroupDatabaseDBaseIV]
  330.   quefilegroup [GroupDatabaseDBaseIII]
  331.   quefilegroup [GroupDatabaseFoxBase]
  332.   quefilegroup [GroupDatabaseRIS]
  333.   quefilegroup [GroupWorkspaceArchitectural]
  334.   quefilegroup [GroupWorkspaceCivil]
  335.   quefilegroup [GroupWorkspaceMechanical]
  336.   quefilegroup [GroupWorkspaceMapping]
  337. endprocedure
  338. ;;      Everything but MDL
  339. procedure doinstallfull
  340.   UnQueAllFiles
  341.   quefilegroup [GroupRequiredFiles] 
  342.   quefilegroup [GroupRecommendedAdditions]
  343.   quefilegroup [GroupOnlineDocumentation]
  344.   quefilegroup [GroupUtilities]
  345.   quefilegroup [GroupDatabaseOracle]
  346.   quefilegroup [GroupDatabaseDBaseIV]
  347.   quefilegroup [GroupDatabaseDBaseIII]
  348.   quefilegroup [GroupDatabaseFoxBase]
  349.   quefilegroup [GroupDatabaseRIS]
  350.   quefilegroup [GroupWorkspaceArchitectural]
  351.   quefilegroup [GroupWorkspaceCivil]
  352.   quefilegroup [GroupWorkspaceMechanical]
  353.   quefilegroup [GroupWorkspaceMapping]
  354. endprocedure
  355. ;;      Minimum installation
  356. procedure dominimal
  357.   UnQueAllFiles
  358.   quefilegroup [GroupRequiredFiles]
  359.   quefilegroup [GroupRecommendedAdditions]
  360.   quefilegroup [GroupUtilities]
  361. endprocedure
  362. ;;      Minimal & MDL
  363. procedure dominimalmde
  364.   UnQueAllFiles
  365.   quefilegroup [GroupRequiredFiles]
  366.   quefilegroup [GroupRecommendedAdditions]
  367.   quefilegroup [GroupUtilities]
  368.   quefilegroup [GroupMDETools]
  369. endprocedure
  370. ;;      Absolute minimum
  371. procedure doabsmin
  372.   UnQueAllFiles
  373.   quefilegroup [GroupRequiredFiles]
  374. endprocedure
  375. ;;      Custom install
  376. procedure docustom
  377. SetBottomLineTo "  <Space> - Mark   <Enter> - Execute   [ExtKey] - Quit  "
  378. UnQueAllFiles
  379. [SizeRequiredFiles] := SizeOfGroup [GroupRequiredFiles] / 1024
  380. [SizeRecommendedAdditions] := SizeofGroup [GroupRecommendedAdditions] / 1024
  381. [SizeOnlineDocumentation] := SizeOfGroup [GroupOnlineDocumentation] / 1024
  382. [SizeUtilities] := SizeOfGroup [GroupUtilities] / 1024
  383. [SizeMDETools] := SizeOfGroup [GroupMDETools] / 1024
  384. [SizeMDEExamples] := SizeOfGroup [GroupMDEExamples] / 1024
  385. [SizeDatabaseOracle] := SizeOfGroup [GroupDatabaseOracle] / 1024
  386. [SizeDatabaseDBaseIV] := SizeOfGroup [GroupDatabaseDBaseIV] / 1024
  387. [SizeDatabaseDBaseIII] := SizeOfGroup [GroupDatabaseDBaseIII] / 1024
  388. [SizeDatabaseFoxBase] := SizeOfGroup [GroupDatabaseFoxBase] / 1024
  389. [SizeDatabaseRIS] := SizeOfGroup [GroupDatabaseRIS] / 1024
  390. [SizeWorkspaceArchitectural] := sizeofgroup [GroupWorkspaceArchitectural] / 1024
  391. [SizeWorkspaceCivil] := sizeofgroup [GroupWorkspaceCivil] / 1024
  392. [SizeWorkspaceMechanical] := sizeofgroup [GroupWorkspaceMechanical] / 1024
  393. [SizeWorkspaceMapping] := sizeofgroup [GroupWorkspaceMapping] / 1024
  394. ;; Set up enumerated variables
  395. [ChoiceEnumerator] := 1
  396. [ChoiceRequiredFiles] := [ChoiceEnumerator]
  397. [ChoiceEnumerator] := [ChoiceEnumerator] + 1
  398. [ChoiceRecommendedAdditions] := [ChoiceEnumerator]
  399. [ChoiceEnumerator] := [ChoiceEnumerator] + 1
  400. [ChoiceOnlineDocumentation] := [ChoiceEnumerator]
  401. [ChoiceEnumerator] := [ChoiceEnumerator] + 1
  402. [ChoiceUtilities] := [ChoiceEnumerator]
  403. [ChoiceEnumerator] := [ChoiceEnumerator] + 1
  404. [ChoiceMDETools] := [ChoiceEnumerator]
  405. [ChoiceEnumerator] := [ChoiceEnumerator] + 1
  406. [ChoiceMDEExamples] := [ChoiceEnumerator]
  407. [ChoiceEnumerator] := [ChoiceEnumerator] + 1
  408. [ChoiceDatabaseOracle] := [ChoiceEnumerator]
  409. [ChoiceEnumerator] := [ChoiceEnumerator] + 1
  410. [ChoiceDatabaseDBaseIV] := [ChoiceEnumerator]
  411. [ChoiceEnumerator] := [ChoiceEnumerator] + 1
  412. [ChoiceDatabaseDBaseIII] := [ChoiceEnumerator]
  413. [ChoiceEnumerator] := [ChoiceEnumerator] + 1
  414. [ChoiceDatabaseFoxBase] := [ChoiceEnumerator]
  415. [ChoiceEnumerator] := [ChoiceEnumerator] + 1
  416. [ChoiceDatabaseRIS] := [ChoiceEnumerator]
  417. [ChoiceEnumerator] := [ChoiceEnumerator] + 1
  418. [ChoiceWorkspaceArchitectural] := [ChoiceEnumerator]
  419. [ChoiceEnumerator] := [ChoiceEnumerator] + 1
  420. [ChoiceWorkspaceCivil] := [ChoiceEnumerator]
  421. [ChoiceEnumerator] := [ChoiceEnumerator] + 1
  422. [ChoiceWorkspaceMechanical] := [ChoiceEnumerator]
  423. [ChoiceEnumerator] := [ChoiceEnumerator] + 1
  424. [ChoiceWorkspaceMapping] := [ChoiceEnumerator]
  425. [ChoiceEnumerator] := [ChoiceEnumerator] + 1
  426. GetMenuChoice AllowMultiple UseHeader "Files to be Installed"
  427.   ;; StartTranslateAllLines
  428.   Install [BentleyProductName] system files [SizeRequiredFiles] Kilobytes
  429.     ; These files are required for [BentleyProductName].
  430.   Install Recommended Additions to [BentleyProductName] [SizeRecommendedAdditions] Kilobytes
  431.     ; These files are highly recommended - this set of files includes
  432.     ; rendering materials and sample design files.
  433.   Install help and documentation files [SizeOnlineDocumentation] Kilobytes
  434.     ; These files contain on-line documentation.
  435.   Install utility programs and files [SizeUtilities] Kilobytes
  436.     ; These files contain utilities to use with [BentleyProductName].
  437.   Install MDE programming tools [SizeMDETools] Kilobytes
  438.     ; These files are necessary for MDE development, but do not include
  439.     ; sample files.
  440.   Install MDE examples  [SizeMDEExamples] Kilobytes
  441.     ; These files contain sample MDE programs.
  442.   Install Oracle Database files  [SizeDatabaseOracle] Kilobytes
  443.     ; These files contain the Oracle Database files and examples.
  444.   Install Xbase Database(dBASE IV) files  [SizeDatabaseDBaseIV] Kilobytes
  445.     ; These files contain the Xbase Database files and examples for
  446.     ; dBASE IV compatibility. 
  447.   Install Xbase Database(dBASE III+) files  [SizeDatabaseDBaseIII] Kilobytes
  448.     ; These files contain the Xbase Database files and examples for
  449.     ; dBASE III+ compatibility. 
  450.   Install Xbase Database(FoxBase) files  [SizeDatabaseFoxBase] Kilobytes
  451.     ; These files contain the Xbase Database files and examples for
  452.     ; FoxBase compatibility.
  453.   Install RIS Database files  [SizeDatabaseRIS] Kilobytes
  454.     ; These files contain the RIS Database files and examples for
  455.     ; RIS compatibility.
  456.   Install Architectural Workspace [SizeWorkspaceArchitectural] Kilobytes
  457.     ; These files contain architectural examples and interface.
  458.   Install Civil Engineering Workspace [SizeWorkspaceCivil] Kilobytes
  459.     ; These files contain civil engineering examples and interface.
  460.   Install Mechanical Drafting Workspace [SizeWorkspaceMechanical] Kilobytes
  461.     ; These files contain mechanical drafting examples and interface.
  462.   Install Mapping Workspace [SizeWorkspaceMapping] Kilobytes
  463.     ; These files contain mapping examples and interface.
  464.   ;; EndTranslateAllLines
  465. endGetMenuChoice
  466. incase choice is 
  467.   =[ChoiceRequiredFiles]: quefilegroup [GroupRequiredFiles]
  468.   =[ChoiceRecommendedAdditions]: quefilegroup [GroupRecommendedAdditions]
  469.   =[ChoiceOnlineDocumentation]: quefilegroup [GroupOnlineDocumentation]
  470.   =[ChoiceUtilities]: quefilegroup [GroupUtilities]
  471.   =[ChoiceMDETools]: quefilegroup [GroupMDETools]
  472.   =[ChoiceMDEExamples]: quefilegroup [GroupMDEExamples]
  473.   =[ChoiceDatabaseOracle]: quefilegroup [GroupDatabaseOracle]
  474.   =[ChoiceDatabaseDBaseIV]: quefilegroup [GroupDatabaseDBaseIV]
  475.   =[ChoiceDatabaseDBaseIII]: quefilegroup [GroupDatabaseDBaseIII]
  476.   =[ChoiceDatabaseFoxBase]: quefilegroup [GroupDatabaseFoxBase]
  477.   =[ChoiceDatabaseRIS]: quefilegroup [GroupDatabaseRIS]
  478.   =[ChoiceWorkspaceArchitectural]: quefilegroup [GroupWorkspaceArchitectural]
  479.   =[ChoiceWorkspaceCivil]: quefilegroup [GroupWorkspaceCivil]
  480.   =[ChoiceWorkspaceMechanical]: quefilegroup [GroupWorkspaceMechanical]
  481.   =[ChoiceWorkspaceMapping]: quefilegroup [GroupWorkspaceMapping]
  482. endincase
  483. SetBottomLineTo "  Arrows - Select   <Enter> - Execute   [ExtKey] - Quit  "
  484. [Number2] := QueSize
  485. If [number2] = 0
  486.   Goto [Point1]
  487. Endif
  488. endprocedure
  489. ;; PROCEDURE: queueMinimal
  490. ;; PROCEDURE: queueMDE
  491. ;; PROCEDURE: queueDatabases
  492. ;; PROCEDURE: queueWorkspaces
  493. ;;      Select target drive
  494. [Point2]
  495. if commandline contains -bernoulli
  496.    determineinstallationdrive QueSize RequireFixed BernoulliAsFixed
  497. else
  498.    determineinstallationdrive QueSize RequireFixed
  499. endif
  500. If InstallationDrive = BlankString
  501.    ;; StartTranslateAllLines
  502.    Popup Please specify an installation drive.
  503.    ;; EndTranslateAllLines
  504.    Goto [Point2]
  505. EndIf
  506. ;;      Confirm if space is insufficient
  507. :GetFinalDestinationConfirmation
  508. [Number1] := FreeSpaceOnDrive InstallationDrive
  509. [Number2] := QueSize
  510. [Number3] := ([Number2] - [Number1]) / 1024
  511. if [number1] < [number2]
  512.     [DialogHeader] := "WARNING: Insufficient Disk Space!"
  513.     [DialogComment1] := "Warning: You will need to free [Number3] KB.  Proceed only if you are going to delete or install over an existing installation."
  514. else
  515.     [DialogHeader] := "Please confirm..."
  516.     [DialogComment1] := "This is an acceptable install type for this drive."
  517. endif
  518. [Number1] := [Number1]/1024
  519. [Number2] := [Number2]/1024
  520. [DialogItems] := 3
  521. [DialogOption1] := "Proceed With Installation"
  522. [DialogOption2] := "Change Installation Type"
  523. [DialogComment2] := "The files you have selected require [Number2] KB."
  524. [DialogOption3] := "Change Target Drive"
  525. [String1] := InstallationDrive
  526. [DialogComment3] := "You have selected drive [String1] ([Number1] KB free)."
  527. do DialogButtons
  528. InCase [DialogResponse] is
  529.   =2: goto [Point1]
  530.   =3: goto [Point2]
  531. endInCase
  532. ;;      Get directory name
  533. [Point3]
  534. [BetaInstallationDirectory] := InstallationDrive:\[BetaRootDirectoryName]
  535. If .NOT. [BetaRootDirectoryName] = [DefaultRootDirectoryName]
  536.     If DirectoryExists [BetaInstallationDirectory]
  537.         [YesOrNo1] := NoCharacter
  538.         Dialog [YesOrNo1] UseHeader "Thank You Beta Testers!"
  539.         ;; StartTranslateAllLines
  540.         Would you like to delete your Beta Installation of [BentleyProductName]
  541.         ([BetaInstallationDirectory]) at this time?
  542.         ;; EndTranslateAllLines
  543.         EndDialog
  544.         If [YesOrNo1] = YesCharacter
  545.         RemoveDirectoryTree [BetaInstallationDirectory]
  546.         EndIf
  547.     EndIf
  548. EndIf
  549. [InstallationDirectory] := InstallationDrive:\[DefaultRootDirectoryName]
  550. if commandline contains -bernoulli
  551.     determineinstallationdirectory
  552. else
  553.     determineinstallationdirectory RequireFixed
  554. endif
  555. ;;      If directory is not empty, let user delete it
  556. [point40]
  557. if DirectoryExists [InstallationDirectory]
  558.    if DirectoryIsEmpty [InstallationDirectory]
  559.    else
  560.       [DialogItems] := 4
  561.       [DialogHeader] := "Caution: '[InstallationDirectory]' Exists"
  562.       [DialogOption1] := "Select Alternate Directory"
  563.       [DialogComment1] := "Preserve the existing directory."
  564.       [DialogOption2] := "Delete Entire Directory"
  565.       [DialogComment2] := "Install from scratch."
  566.       [DialogOption3] := "Retain Personalized Information"
  567.       [DialogComment3] := "Delete everything except for existing licenses, workspaces, and design files."
  568.       [DialogOption4] := "Install Over Directory"
  569.       [DialogComment4] := "Union the files you've selected with the directory's existing contents."
  570.       do DialogButtons
  571.       InCase [DialogResponse] is
  572.      =1: GoTo [Point3]
  573.      =2:
  574.          Dialog [YesOrNo1] WhiteOnRed UseHeader "[BentleyProductName] Installation"
  575.         ;; StartTranslateAllLines
  576.         You are about to delete the entire [BentleyProductName]
  577.         directory. Please confirm that you want to do this.
  578.         ;; EndTranslateAllLines
  579.          EndDialog
  580.          if [YesOrNo1] = NoCharacter
  581.         goto [point40]
  582.          endif
  583.          TextBox
  584.         ;; StartTranslateAllLines
  585.         Please wait while files are deleted...
  586.         ;; EndTranslateAllLines
  587.          EndTextBox
  588.          RemoveDirectoryTree [InstallationDirectory]
  589.          ClearScreen
  590.      =3:
  591.          Dialog [YesOrNo1] WhiteOnRed UseHeader "[BentleyProductName] Installation"
  592.         ;; StartTranslateAllLines
  593.         You are about to delete most of the [BentleyProductName]
  594.         directory. Please confirm that you want to do this.
  595.         ;; EndTranslateAllLines
  596.          EndDialog
  597.          if [YesOrNo1] = NoCharacter
  598.         goto [point40]
  599.          endif
  600.          TextBox
  601.         ;; StartTranslateAllLines
  602.         Please wait while files are deleted...
  603.         ;; EndTranslateAllLines
  604.          EndTextBox
  605.          RemoveDirectoryTree [InstallationDirectory]\chartran
  606.          RemoveDirectoryTree [InstallationDirectory]\config
  607.          RemoveDirectoryTree [InstallationDirectory]\data
  608.          RemoveDirectoryTree [InstallationDirectory]\database
  609.          RemoveDirectoryTree [InstallationDirectory]\docs
  610.          if DirectoryExists [InstallationDirectory]\drivers
  611.         DeleteFiles from [InstallationDirectory]\drivers Quietly
  612.             bsi*.*
  613.             ver4tiga.*
  614.         EndDeleteFiles
  615.          endif
  616.          RemoveDirectoryTree [InstallationDirectory]\edg
  617.          RemoveDirectoryTree [InstallationDirectory]\help
  618.          RemoveDirectoryTree [InstallationDirectory]\image
  619.          RemoveDirectoryTree [InstallationDirectory]\macros
  620.          RemoveDirectoryTree [InstallationDirectory]\material
  621.          RemoveDirectoryTree [InstallationDirectory]\mdl\bin
  622.          RemoveDirectoryTree [InstallationDirectory]\mdl\examples
  623.          RemoveDirectoryTree [InstallationDirectory]\mdl\include
  624.          RemoveDirectoryTree [InstallationDirectory]\mdl\library
  625.          RemoveDirectoryTree [InstallationDirectory]\mdl\objects
  626.          RemoveDirectoryTree [InstallationDirectory]\mdlapps
  627.          RemoveDirectoryTree [InstallationDirectory]\mdlsys
  628.          RemoveDirectoryTree [InstallationDirectory]\menus
  629.          RemoveDirectoryTree [InstallationDirectory]\plotcfg
  630.          RemoveDirectoryTree [InstallationDirectory]\tables
  631.          RemoveDirectoryTree [InstallationDirectory]\tagcfg
  632.          RemoveDirectoryTree [InstallationDirectory]\tmp
  633.          RemoveDirectoryTree [InstallationDirectory]\utils
  634.          RemoveDirectoryTree [InstallationDirectory]\wsmod\arch
  635.          RemoveDirectoryTree [InstallationDirectory]\wsmod\civil
  636.          RemoveDirectoryTree [InstallationDirectory]\wsmod\default
  637.          RemoveDirectoryTree [InstallationDirectory]\wsmod\mapping
  638.          RemoveDirectoryTree [InstallationDirectory]\wsmod\mechdrft
  639.          RemoveDirectoryTree [InstallationDirectory]\wsui\arch
  640.          RemoveDirectoryTree [InstallationDirectory]\wsui\autocad
  641.          RemoveDirectoryTree [InstallationDirectory]\wsui\civil
  642.          RemoveDirectoryTree [InstallationDirectory]\wsui\default
  643.          RemoveDirectoryTree [InstallationDirectory]\wsui\mapping
  644.          RemoveDirectoryTree [InstallationDirectory]\wsui\mde
  645.          RemoveDirectoryTree [InstallationDirectory]\wsui\mechdrft
  646.          RemoveDirectoryTree [InstallationDirectory]\wsui\newuser
  647.          RemoveDirectoryTree [InstallationDirectory]\wsui\v50
  648.          ClearScreen
  649.        endincase
  650.    endif
  651. endif
  652. [Point50]
  653. ;;      Actually copy files...
  654. CreateDirectoryIfNecessary [installationdirectory]
  655. setBottomLineTo " Any key interrupts the installation process... "
  656. Procedure MyFatalError
  657.     Dialog 
  658.     ;; StartTranslateAllLines
  659.     FatalError: FatalErrorMessage (Script Line: ScriptErrorLine)
  660.     Please make sure the [BentleyProductName] Installer and its 
  661.     associated files are intact.
  662.     ;; EndTranslateAllLines
  663.     EndDialog
  664.     SoLong
  665. EndProcedure
  666. SetCallbackFor FatalError to MyFatalError
  667. getquedfiles ShowJustOne
  668. setBottomLineTo ""
  669. [Number1] := quesize
  670. If [Number1] = 0
  671.    SetCompletionStatusTo Finished
  672. else
  673.    SetCompletionStatusTo UnFinished
  674.    Goto [Point30]
  675. Endif
  676. ;;      Do some postinstallation stuff...
  677. ;;      First, create empty directories
  678. CreateDirectoryIfNecessary [installationdirectory]\install
  679. CreateDirectoryIfNecessary [installationdirectory]\config\appl
  680. CreateDirectoryIfNecessary [installationdirectory]\license
  681. CreateDirectoryIfNecessary [installationdirectory]\material
  682. CreateDirectoryIfNecessary [installationdirectory]\material\bump
  683. CreateDirectoryIfNecessary [installationdirectory]\material\pattern
  684. CreateDirectoryIfNecessary [installationdirectory]\wsui\default
  685. CreateDirectoryIfNecessary [installationdirectory]\out
  686. CreateDirectoryIfNecessary [installationdirectory]\out\plot
  687. CreateDirectoryIfNecessary [installationdirectory]\out\cgm
  688. CreateDirectoryIfNecessary [installationdirectory]\out\iges
  689. CreateDirectoryIfNecessary [installationdirectory]\out\image
  690. CreateDirectoryIfNecessary [installationdirectory]\out\tag
  691. CreateDirectoryIfNecessary [installationdirectory]\out\dwgordxf
  692. CreateDirectoryIfNecessary [installationdirectory]\out\dgn
  693. CreateDirectoryIfNecessary [installationdirectory]\out\grd
  694. CreateDirectoryIfNecessary [installationdirectory]\tagcfg
  695. CreateDirectoryIfNecessary [installationdirectory]\tmp
  696. CreateDirectoryIfNecessary [Installationdirectory]\dgn
  697. CreateDirectoryIfNecessary [Installationdirectory]\dgn\default
  698. ;;      Some directories only need to be created if certain install
  699. ;;      options are picked...
  700. if DirectoryExists [installationdirectory]\database\ris
  701.    CreateDirectoryIfNecessary [installationdirectory]\database\ris\examples\tables
  702. endif
  703. if DirectoryExists [installationdirectory]\mdl
  704.    CreateDirectoryIfNecessary [installationdirectory]\mdl\objects
  705. endif
  706. if DirectoryExists [installationdirectory]\database\oracle
  707.    CreateDirectoryIfNecessary [installationdirectory]\database\oracle\examples\forms
  708. endif
  709. ;;      Create plotfile.bat on WIN machines - usconfig creates it on DOS.
  710. [Point30]
  711. If completionstatus = Finished
  712.     If [UnAttended] = 1
  713.     SoLong
  714.     EndIf
  715.     if FileExists [InstallationDirectory]\usconfig.exe
  716.     Dialog [YesOrNo1]
  717.         ;; StartTranslateAllLines
  718.         Would you like to configure [BentleyProductName] for DOS?
  719.         You will need to configure [BentleyProductName] before
  720.         you run it the first time. However, you may not
  721.         want to configure if this is a network server
  722.         installation, unless you would like to provide
  723.         all local systems with the same default
  724.         configuration.
  725.         ;; EndTranslateAllLines
  726.     EndDialog
  727.     if [YesOrNo1] = YesCharacter
  728.         ChangeDirectoryTo [InstallationDirectory]
  729.         Run [InstallationDirectory]\usconfig.exe -dos NoPrompt SwapOut
  730.     endif
  731.     endif
  732. ;;      Final message: success
  733.   Dialog UseHeader "[BentleyProductName] Installation"
  734.   ;; StartTranslateAllLines
  735.   [BentleyProductName] installation completed.
  736.   Do not forget to register your new software.
  737.   ;; EndTranslateAllLines
  738.   EndDialog
  739. else ;; COMPLETIONSTATUS if clause
  740.   If [UnAttended] = 1
  741.     SoLong
  742.   EndIf
  743. ;;      Final message: failure
  744. Endif
  745. ;; Procedure DetermineEndOfLine
  746. ;; - Move the variable "CommentLineBreak" forward to the next 
  747. ;;   space of string "CommentString"
  748. Procedure DetermineEndOfLine
  749. :Label_MoveForwardToEndOfWord
  750.     [String1] := SubStringOf [CommentString] from [CommentLineBreak] to [CommentLineBreak]
  751.     If [String1] = BlankString
  752.         Exit
  753.     EndIf
  754.     If [String1] = " "
  755. :Label_SkipTrailingSpaces
  756.         [CommentLineBreak] := [CommentLineBreak] + 1
  757.         [String1] := SubStringOf [CommentString] from [CommentLineBreak] to [CommentLineBreak]
  758.         If [String1] = " "
  759.         GoTo Label_SkipTrailingSpaces
  760.     EndIf
  761.     Else
  762.         [CommentLineBreak] := [CommentLineBreak] + 1
  763.     GoTo Label_MoveForwardToEndOfWord
  764.     EndIf
  765. EndProcedure ;; DetermineEndOfLine
  766. ;; Procedure BreakStringIntoThreeLines
  767. ;; - Change the string "CommentString" into CommentString1, CommentString2, CommentString3.
  768. Procedure BreakStringIntoThreeLines
  769.     [CommentLineBreak] := 60
  770.     do DetermineEndOfLine
  771.     [CommentString1] := SubStringOf [CommentString] from Beginning to [CommentLineBreak]
  772.     If [CommentString1] = BlankString
  773.         [CommentString1] := " "
  774.         [CommentString2] := " "
  775.         [CommentString3] := " "
  776.         Exit
  777.     EndIf
  778.     [CommentLineStart] := [CommentLineBreak] + 1
  779.     [CommentLineBreak] := [CommentLineStart] + 60
  780.     do DetermineEndOfLine
  781.     [CommentString2] := SubStringOf [CommentString] from [CommentLineStart] to [CommentLineBreak]
  782.     If [CommentString2] = BlankString
  783.         [CommentString2] := " "
  784.         [CommentString3] := " "
  785.         Exit
  786.     EndIf
  787.     [CommentLineStart] := [CommentLineBreak] + 1
  788.     [CommentString3] := SubStringOf [CommentString] from [CommentLineStart] to End
  789.     If [CommentString3] = BlankString
  790.         [CommentString3] := " "
  791.     EndIf
  792. EndProcedure ;; BreakStringIntoThreeLines
  793. ;; DialogButtons
  794. Procedure DialogButtons
  795.     If [DialogItems] >= 1
  796.         [CommentString] := [DialogComment1]
  797.         do BreakStringIntoThreeLines
  798.         [DialogComment1a] := [CommentString1]
  799.         [DialogComment1b] := [CommentString2]
  800.         [DialogComment1c] := [CommentString3]
  801.     EndIf
  802.     If [DialogItems] >= 2
  803.         [CommentString] := [DialogComment2]
  804.         do BreakStringIntoThreeLines
  805.         [DialogComment2a] := [CommentString1]
  806.         [DialogComment2b] := [CommentString2]
  807.         [DialogComment2c] := [CommentString3]
  808.     EndIf
  809.     If [DialogItems] >= 3
  810.         [CommentString] := [DialogComment3]
  811.         do BreakStringIntoThreeLines
  812.         [DialogComment3a] := [CommentString1]
  813.         [DialogComment3b] := [CommentString2]
  814.         [DialogComment3c] := [CommentString3]
  815.     EndIf
  816.     If [DialogItems] >= 4
  817.         [CommentString] := [DialogComment4]
  818.         do BreakStringIntoThreeLines
  819.         [DialogComment4a] := [CommentString1]
  820.         [DialogComment4b] := [CommentString2]
  821.         [DialogComment4c] := [CommentString3]
  822.     EndIf
  823.     If [DialogItems] >= 5
  824.         [CommentString] := [DialogComment5]
  825.         do BreakStringIntoThreeLines
  826.         [DialogComment5a] := [CommentString1]
  827.         [DialogComment5b] := [CommentString2]
  828.         [DialogComment5c] := [CommentString3]
  829.     EndIf
  830.     If ([DialogItems] = 2)
  831.     GetMenuChoice UseHeader "[DialogHeader]"
  832.     [DialogOption1]
  833.         ;[DialogComment1a]
  834.         ;[DialogComment1b]
  835.         ;[DialogComment1c]
  836.     [DialogOption2]
  837.         ;[DialogComment2a]
  838.         ;[DialogComment2b]
  839.         ;[DialogComment2c]
  840.     EndGetMenuChoice
  841.     EndIf
  842.     If ([DialogItems] = 3)
  843.     GetMenuChoice UseHeader "[DialogHeader]"
  844.     [DialogOption1]
  845.         ;[DialogComment1a]
  846.         ;[DialogComment1b]
  847.         ;[DialogComment1c]
  848.     [DialogOption2]
  849.         ;[DialogComment2a]
  850.         ;[DialogComment2b]
  851.         ;[DialogComment2c]
  852.     [DialogOption3]
  853.         ;[DialogComment3a]
  854.         ;[DialogComment3b]
  855.         ;[DialogComment3c]
  856.     EndGetMenuChoice
  857.     EndIf
  858.     If ([DialogItems] = 4)
  859.     GetMenuChoice UseHeader "[DialogHeader]"
  860.     [DialogOption1]
  861.         ;[DialogComment1a]
  862.         ;[DialogComment1b]
  863.         ;[DialogComment1c]
  864.     [DialogOption2]
  865.         ;[DialogComment2a]
  866.         ;[DialogComment2b]
  867.         ;[DialogComment2c]
  868.     [DialogOption3]
  869.         ;[DialogComment3a]
  870.         ;[DialogComment3b]
  871.         ;[DialogComment3c]
  872.     [DialogOption4]
  873.         ;[DialogComment4a]
  874.         ;[DialogComment4b]
  875.         ;[DialogComment4c]
  876.     EndGetMenuChoice
  877.     EndIf
  878.     If ([DialogItems] = 5)
  879.     GetMenuChoice UseHeader "[DialogHeader]"
  880.     [DialogOption1]
  881.         ;[DialogComment1a]
  882.         ;[DialogComment1b]
  883.         ;[DialogComment1c]
  884.     [DialogOption2]
  885.         ;[DialogComment2a]
  886.         ;[DialogComment2b]
  887.         ;[DialogComment2c]
  888.     [DialogOption3]
  889.         ;[DialogComment3a]
  890.         ;[DialogComment3b]
  891.         ;[DialogComment3c]
  892.     [DialogOption4]
  893.         ;[DialogComment4a]
  894.         ;[DialogComment4b]
  895.         ;[DialogComment4c]
  896.     [DialogOption5]
  897.         ;[DialogComment5a]
  898.         ;[DialogComment5b]
  899.         ;[DialogComment5c]
  900.     EndGetMenuChoice
  901.     EndIf
  902.     InCase Choice is
  903.     =1: [DialogResponse] := 1
  904.     =2: [DialogResponse] := 2
  905.     =3: [DialogResponse] := 3
  906.     =4: [DialogResponse] := 4
  907.     =5: [DialogResponse] := 5
  908.     EndInCase
  909. EndProcedure
  910. ;; ExitProcedure - called at exit.
  911. Procedure ExitProcedure
  912. If completionstatus = Finished
  913. Else
  914.     If [UnAttended] = 0
  915.        Dialog UseHeader "[BentleyProductName] Installation"
  916.       ;; StartTranslateAllLines
  917.       [BentleyProductName] was not completely installed.
  918.       You should run the installation program again.
  919.       ;; EndTranslateAllLines
  920.        EndDialog
  921.     EndIf
  922. EndIf
  923. EndProcedure
  924. ;;              The END
  925.