home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 13 / AACD13.ISO / AACD / System / EASys / InstallPack_47 / EASys!_inst / EASys!_iGuide / Init / init < prev    next >
Text File  |  2000-08-02  |  118KB  |  4,079 lines

  1. /*
  2.   EASys! sets new standards for your system comfort © TNE) since 1995
  3.   000627 T.Neidhardt, thomas.neidhardt@fen-net.de, EasySystem
  4.  
  5.   iGuide Installation Script (documentation not yet available)
  6.   for EASys! Base-Archive.
  7. */
  8.  
  9. /* -------------- BEGIN Definition Block ------------------ */
  10.  
  11. InstApp="EASys!  © since 1995 TNE)"
  12. Author="© since 1995 Tom Neidhardt, 91058 Erlangen, GERMANY"
  13.  
  14. /* The Base Archive must have the same name for InstBase and InstModule */
  15. InstBase='EASys!'    /* do not use more than 12 characters here! */
  16. InstModule='EASys!'  /* do not use more than 12 characters here! */
  17. Inst_Ver='4.7.2'
  18. Update_StartVer='4.6'
  19. Update_EndVer='4.6.6'
  20. VersionLog='SYS:EASys!/Help/EASys!.version'
  21.  
  22. CDname='EASys!_CD'
  23. ContribDir='EASys!_4.7/Contributions'
  24.  
  25. ADDRESS COMMAND
  26. 'setenv CDNAME 'CDname
  27. 'setenv CONTRIBDIR 'ContribDir
  28.  
  29. /* Supply at least one Guide with the Name  <InstBase>'.guide'
  30.    which has a Headline beginning with   <InstBase>', '       */
  31.  
  32. /* Presets section ---------- */
  33. CALL Init
  34. EASys_from_HD=0
  35.  
  36. /* -------------- END Definition Block ------------------ */
  37.  
  38. CALL CheckInstallDir('iGuide:init')
  39.  
  40. CALL InitVersion
  41. CALL CheckUpdate
  42. CALL RexxInstallInfo
  43.  
  44. CALL ActionMessage('_Intro1')
  45.  
  46. IF User_Ver>=Update_StartVer & User_Ver<Update_EndVer THEN CALL UpdateCurrentVer
  47.  
  48. CALL ActionMessage('_Intro2')
  49.  
  50. /* ------------------------- */
  51. main:
  52.  
  53. CALL EASysMain
  54. CALL EASys_rexx
  55. CALL EASys_bin
  56. CALL System
  57. CALL ModAS
  58.  
  59. ADDRESS COMMAND 'delete >NIL: devs:DosDrivers/#?'date'#?'
  60.  
  61. IF update>0 THEN CALL References_Init
  62. CALL InitBase
  63. CALL References
  64. CALL Prefs
  65. CALL CreateTrash
  66.  
  67. r=ShowMessage('enhance_Infos',,,,AppName)
  68.  
  69. CALL WBmenu
  70. CALL ToolManager
  71.  
  72. ADDRESS COMMAND 'rx EASys!:Prefs/Internet_Apps.rexx'
  73.  
  74. CALL BU_Manager
  75. CALL Help
  76.  
  77. CALL MakeVer
  78.  
  79. CALL Dictionary
  80. CALL SayTime
  81. CALL SongPlayer
  82. CALL MultiTracker
  83. CALL MultiMediaBoot
  84.  
  85. CALL PRAGMA('DIRECTORY','iGuide:')
  86. r=ShowMessage('_last_Infos',,,,AppName)
  87.  
  88. IF wb_port=1 THEN
  89. DO
  90.  ADDRESS WORKBENCH WINDOW "SYS:ShutDown" OPEN
  91.  CALL DELAY(100)
  92.  ADDRESS WORKBENCH WINDOW "SYS:StartSys" OPEN
  93.  CALL DELAY(100)
  94.  ADDRESS WORKBENCH WINDOW "SYS:EASys!" OPEN
  95.  CALL DELAY(150)
  96. END
  97.  
  98. CALL ExitMe('REGULAR_END')
  99.  
  100. /* -------------- BEGIN Specific Procedures ------------------ */
  101. CheckUpdate:
  102. InstName=' EASys! Checking update ... '
  103.  
  104. SELECT
  105.  WHEN (User_ver >= Update_EndVer) THEN
  106.  DO
  107.   update=0
  108.   CALL Msg_Con_Log('HHHH New installation over version > 'Update_EndVer'')
  109.  END
  110.  
  111.  WHEN (EXISTS('ENVARC:MARInA/FileManager.rexx') | EXISTS('SYS:MARInA_bin/man')) THEN
  112.  DO
  113.   update=1
  114.   user_ver=2.6
  115.   CALL Msg_Con_Log('HHH Updating: MARInA System becomes EASys!...')
  116.   CALL Msg_Con_Log('HH Updating: To be installed: 'Inst_ver)
  117.  END
  118.  
  119.  WHEN (User_ver>0 & Inst_Ver>=User_ver) | EXISTS('SYS:EASys!/Presentate') THEN
  120.  DO
  121.   update=2
  122.   CALL Msg_Con_Log('HHHH Update: EASys! ... repeated try for installation or updating.')
  123.   CALL Msg_Con_Log('HH Version found:   'User_ver)
  124.   CALL Msg_Con_Log('HH To be installed: 'Inst_ver)
  125.  END
  126.  
  127.  WHEN User_Ver>=Inst_ver THEN
  128.  DO
  129.   update=3
  130.   CALL Msg_Con_Log('HHHH User version is higher than installer-Version !?')
  131.  END
  132.  
  133.  OTHERWISE
  134.  DO
  135.   update=0
  136.   CALL Msg_Con_Log('HHHH First installation for EASys!')
  137.  END
  138. END /* SELECT */
  139.  
  140. IF update>0 THEN CALL UnpackArchive(StarterDir'EASys!_update.lha','iGuide:update/')
  141.  
  142. CALL CloseCon
  143. RETURN
  144.  
  145. /* ------------------------- */
  146. MakeVer:
  147. InstName=' EASys! Finishing procedure '
  148.  
  149. r=WriteLn(LOGFILE,'Finishing EASys! installation ...')
  150. CALL ExecScript('iGuide:Finish.script','')
  151.  
  152. CMD.1='protect 'VersionLog' +rwd'
  153. CMD.2='echo >'VersionLog' "'Inst_Ver'"'
  154. CMD.3='protect 'VersionLog' -wd'
  155. CALL Do_and_Log
  156.  
  157. CALL DELAY(100)
  158. RETURN
  159.  
  160. /* ------------------------- */
  161. UpdateCurrentVer:
  162. InstName=' EASys! updating process '
  163.  
  164. ADDRESS COMMAND 'Install_C:CLIexchange MultiNotify KILL'
  165.  
  166. CALL Msg_Con_Log('HHH Updating: current 'User_ver' system ... doing some bugfixes.')
  167. CMD.1='delete >NIL: EASys!:Config FORCE ALL QUIET'
  168. CMD.2='delete >NIL: EASys!:SysDatabase/english QUIET'
  169. CMD.3='delete >NIL: EASys!:Prefs/english QUIET'
  170. CMD.4='delete >NIL: EASys!:bin/english QUIET'
  171. CMD.5='delete >NIL: EASys!:StartFileMenu/english QUIET'
  172. CMD.6='delete >NIL: EASys!_rexx:english QUIET'
  173. CALL Do_and_Log
  174.  
  175. IF EXISTS(StarterDir'EASys!_english.lha') THEN
  176.    CALL UnpackArchive(StarterDir'EASys!_english.lha','SYS:EASys!/')
  177.  
  178. IF ~EXISTS('EASys!:Programs/english') & EXISTS('EASys!:Programs/'RealLanguage) THEN
  179. DO
  180.   CMD.1='copy EASys!:bin/'RealLanguage' EASys!:bin/english CLONE ALL QUIET'
  181.   CMD.2='copy EASys!:Config/'RealLanguage' EASys!:Config/english CLONE ALL QUIET'
  182.   CMD.3='copy EASys!:Prefs/'RealLanguage' EASys!:Prefs/english CLONE ALL QUIET'
  183.   CMD.4='copy EASys!:Programs/'RealLanguage' EASys!:Programs/english CLONE ALL QUIET'
  184.   CMD.5='copy EASys!:StartFileMenu/'RealLanguage' EASys!:StartFileMenu/english CLONE ALL QUIET'
  185.   CMD.6='copy EASys!:SysDatabase/'RealLanguage' EASys!:SysDatabase/english CLONE ALL QUIET'
  186.   CALL Do_and_Log
  187. END
  188.  
  189. IF user_ver<Update_EndVer THEN
  190. DO
  191.  CMD.1='copy iGuide:update/EASys! SYS:EASys! CLONE ALL QUIET'
  192.  CMD.2='copy iGuide:update/EASys!/Programs EASys!_rexx: CLONE ALL QUIET'
  193.  CMD.3='copy iGuide:update/l SYS:l CLONE ALL QUIET'
  194.  CALL Do_and_Log
  195.  
  196.  CMD.1='copy iGuide:update/libs SYS:libs CLONE ALL QUIET'
  197.  CMD.2='copy iGuide:update/Prefs SYS:Prefs CLONE ALL QUIET'
  198.  CMD.3='copy iGuide:update/Prefs/ENV-Archive ENV: CLONE ALL QUIET'
  199.  CALL Do_and_Log
  200. END
  201.  
  202. CMD.1='makedir >NIL: EASys!:EasyMail'
  203. CMD.2='makedir >NIL: EASys!:EasyPrint'
  204. CMD.3='makedir >NIL: EASys!:EasyArc'
  205. CMD.4='makedir >NIL: EASys!:EasyView'
  206. CMD.5='makedir >NIL: EASys!:EasySnap'
  207. CALL Do_and_Log
  208.  
  209. CALL References_Init
  210. CALL References
  211.  
  212. CALL ModAS
  213. CALL InitBase
  214. CALL WBmenu
  215. CALL ToolManager('QUICK')
  216.  
  217. ADDRESS COMMAND 'rx EASys!:Prefs/Internet_Apps.rexx'
  218.  
  219. CALL Dictionary
  220. CALL SayTime
  221. CALL SongPlayer
  222. CALL MultiTracker
  223. CALL MultiMediaBoot
  224.  
  225. CALL MakeVer
  226. CALL DELAY(100)
  227. CALL Msg_Con_Log('HHH Updating done: You may continue work now...')
  228. CALL DELAY(200)
  229. CALL CloseCon
  230. CALL ExitMe('REGULAR_END')
  231.  
  232. /* ------------------------- */
  233. EASysMain:
  234. InstName=' EASys! main installation '
  235.  
  236. CALL Msg_Con_Log('HHH Preparing: Check system for earlier EASys! fragments ...')
  237.  
  238. /* Kill Multinotify immediately when starting Deinstaller ! in first place */
  239. r=wdi('T:CLIexchange MultiNotify KILL')
  240. r=wdi('echo "*e[1m Removing EASys!: assign*e[0m"')
  241. r=wdi('resident EASys!_bin:IDer REMOVE')
  242. r=wdi('path EASys!_bin: REMOVE')
  243. r=wdi('path SYS:EASys!/bin REMOVE')
  244. r=wdi('assign EASys!_bin: EASys!:bin REMOVE')
  245. r=wdi('delete SYS:EASys!.info')
  246. CALL SpaceNextEntry
  247.  
  248. /* Kill Multinotify within Preparing Installer */
  249. CALL ExecScript('iGuide:PrepareInstall.script','')
  250. CALL SpaceNextEntry
  251. CALL CloseCon
  252.  
  253.  
  254. InstName=' EASys!.lha '
  255. r=ActionMessage('EASys!_main')
  256.  
  257. CALL UnpackArchive(StarterDir'EASys!.lha','SYS:')
  258.  
  259. r=wdi('echo "*e[1m Removing EASys! preconfiguration ...*e[0m*n"')
  260. r=wdi('wait 3')
  261. r=wdi('delete SYS:StartSys/c_Prepare/EASys! FORCE')
  262. r=wdi('rx T:remoteed.rexx movetext s:User-Startup "BEGIN EASys!" "END EASys!" T:Trash')
  263. CALL SpaceNextEntry
  264. CALL CloseCon
  265. RETURN
  266.  
  267. /* ------------------------- */
  268. EASys_rexx:
  269.  
  270. InstName=' EASys!_rexx '
  271.  
  272. r=ActionMessage('EASys!_rexx_copy')
  273. IF r=1 THEN EASys_from_HD=0
  274. IF r=2 THEN EASys_from_HD=1
  275.  
  276. lang.1='deutsch'
  277. lang.2='english'
  278. lang.3='español'
  279. lang.4='français'
  280. lang.count=4
  281.  
  282. one_language=ShowMessage('EASys!_language',,,,AppName,RealLanguage)
  283. IF one_language=1 THEN
  284. DO
  285.  IF EXISTS(StarterDir'EASys!_'RealLanguage'.lha') THEN
  286.     CALL UnpackArchive(StarterDir'EASys!_'RealLanguage'.lha','SYS:EASys!/')
  287.  
  288.  IF ~(RealLanguage='english') THEN
  289.     CALL UnpackArchive(StarterDir'EASys!_english.lha','SYS:EASys!/')
  290. END
  291. ELSE
  292. DO n=1 to lang.count
  293.    CALL UnpackArchive(StarterDir'EASys!_'lang.n'.lha','SYS:EASys!/')
  294.    lang.n=''
  295. END
  296.  
  297. CMD.1='copy iGuide:upd/EASys!/#? SYS:EASys! CLONE ALL QUIET'
  298. CALL Do_and_Log
  299.  
  300. RETURN
  301.  
  302. /* ------------------------- */
  303. EASys_bin:
  304.  
  305. InstName=' EASys!_System and binaries '
  306.  
  307. IF EXISTS('ENVARC:MagicMenu.prefs') THEN ADDRESS COMMAND 'copy ENVARC:MagicMenu.prefs ENVARC:MagicMenu.prefs'TimeStamp' CLONE QUIET'
  308.  
  309. IF update=1 THEN
  310. DO
  311.  oldbin_dir=MyGetENV('RefTable/Dir-MARInA_bin')
  312.  oldbin=UPPER(STRIP(oldbin_dir,'T','/'))
  313.  
  314.  IF ~(oldbin='???') THEN ADDRESS COMMAND 'assign MARInA_bin: "'oldbin'" REMOVE'
  315.  IF ~(oldbin='C:' | oldbin='SYS:C' | oldbin='SYS:UTILITIES' | oldbin='SYS:SYSTEM' | oldbin='SYS:TOOLS') THEN
  316.  DO
  317.     ADDRESS COMMAND
  318.     'copy "'oldbin_dir'#?" SYS:EASys!/bin CLONE ALL QUIET'
  319.     'delete >NIL: "'oldbin'" ALL QUIET'
  320.  END
  321. END
  322.  
  323. r=ActionMessage('EASys!_bin_unpack')
  324. CALL UnpackArchive(StarterDir'EASys!_System.lha','iGuide_root:')
  325.  
  326. ADDRESS COMMAND
  327. 'copy ENVARC:EDIT ENV: CLONE QUIET'
  328. 'copy ENVARC:EDITOR ENV: CLONE QUIET'
  329.  
  330. r=wdi('echo "*e[1m Removing EASys!_bin: assign*e[0m" NOLINE')
  331. r=wdi('assign EASys!_bin: SYS:EASys!/bin REMOVE')
  332. CALL SpaceNextEntry
  333. RETURN
  334.  
  335. /* ------------------------- */
  336. System:
  337.  
  338. InstName=' activating Libs&Prefs&Catalogs&ENV '
  339. SourceDir='iGuide_root:EASys!_System'
  340. DestDir1='SYS:'
  341. DoCheck=1
  342. CALL CopyAction
  343.  
  344. ADDRESS COMMAND
  345. 'copy "iGuide_root:EASys!_System/Prefs/env-archive" ENV: CLONE ALL QUIET'
  346. 'run >NIL: delete "iGuide_root:EASys!_System#?" FORCE ALL QUIET'
  347.  
  348. IF EXISTS('ENVARC:ActualPath') THEN ADDRESS COMMAND move' ENVARC:ACTUAL#? SYS:EASys!/flags CLONE QUIET'
  349. RETURN
  350.  
  351. /* ------------------------- */
  352. ModAS:
  353.  
  354. ModAS_User=0
  355. InstallModAS=0
  356. InstName=' ModAS_System '
  357. CALL OpenCon(' ModAS ©TNE  Installation ...')
  358.  
  359. ADDRESS COMMAND
  360. 'Install_C:CLIexchange MultiNotify KILL'
  361. 'protect s:startup-sequence +wd'
  362. 'protect s:startup-sequence.before_ModAS +wd'
  363. 'protect s:user-startup +wd'
  364. 'protect s:user-startup.before_ModAS +wd'
  365. 'delete >NIL: ENVARC:Flags FORCE QUIET'
  366. 'delete >NIL: ENV:Flags FORCE QUIET'
  367. 'makedir >NIL: ENVARC:Flags'
  368. 'makedir >NIL: ENV:Flags'
  369. 'delete >NIL: ENVARC:Flags/Boot_Menu'
  370. 'delete >NIL: ENV:Flags/Boot_Menu'
  371. 'delete >NIL: SYS:StartSys/Profiles/#?/ENV/Flags/Boot_Menu'
  372.  
  373. /* Backup for all standarad startup scripts */
  374. CALL Msg_Con_Log('HHH Creating TimeStamp Backup for startup: SYS:s/#?'TimeStamp)
  375. CALL DELAY(300)
  376.  
  377. CMD.1='copy s:startup-sequence s:startup-sequence$TimeStamp'
  378. CMD.2='copy s:user-startup s:user-startup$TimeStamp'
  379.  
  380. IF ~EXISTS('S:Startup-Sequence.before_ModAS') THEN
  381. DO
  382.  IF EXISTS('S:Startup-Sequence.1') THEN
  383.     CMD.3'copy s:startup-sequence.1 s:startup-sequence.before_ModAS CLONE QUIET'
  384.  ELSE
  385.     CMD.3='copy s:startup-sequence s:startup-sequence.before_ModAS CLONE QUIET'
  386. END
  387.  
  388. IF ~EXISTS('S:user-startup.before_ModAS') THEN
  389. DO
  390.  IF EXISTS('S:user-startup.1') THEN
  391.     CMD.4='copy s:user-startup.1 s:user-startup.before_ModAS CLONE QUIET'
  392.  ELSE
  393.     CMD.4='copy s:user-startup s:user-startup.before_ModAS CLONE QUIET'
  394. END
  395. CALL Do_and_Log
  396.  
  397. CALL Msg_Con_Log('HHH Unpacking ModAS_System to temporary path ( iGuide_root: )')
  398. CALL DELAY(200)
  399.  
  400. CALL UnpackArchive(StarterDir'ModAS_System.lha','iGuide_root:')
  401.  
  402. IF user_ver<Update_EndVer THEN
  403. DO
  404.  /* update StartSys Base */
  405.  IF update>0 THEN ADDRESS COMMAND 'copy iGuide:update/StartSys "iGuide_root:ModAS_System/StartSys" CLONE ALL QUIET'
  406. END
  407.  
  408. /* Buffer for some important calls (installed later) */
  409. ADDRESS COMMAND
  410. 'copy "iGuide_root:ModAS_System/StartSys/a_Init/Rexx" T: CLONE QUIET'
  411. 'copy "iGuide_root:ModAS_System/StartSys/c_Prepare/KCON" T: CLONE QUIET'
  412. 'copy "iGuide_root:ModAS_System/StartSys/e_WB/2_MenuShortcuts" T: CLONE QUIET'
  413. 'copy "iGuide_root:ModAS_System/StartSys/e_WB/7_PubScreens" T: CLONE QUIET'
  414.  
  415. /*------------------------------ Check for previous installed ModAS */
  416. SELECT
  417.  WHEN user_ver<=3.6 & (~EXISTS('SYS:StartSys/e_WB/3_Workbench') | ~EXISTS('SYS:StartSys/a_Init/3_Assigns')) THEN Update_ModAS=0
  418.  WHEN user_ver>3.6 & ~EXISTS('ENVARC:ModAS_activated') & ~EXISTS('SYS:StartSys/ModAS_activated') THEN Update_ModAS=0
  419.  OTHERWISE Update_ModAS=1
  420. END
  421.  
  422. /*------------------------------ Simply Update ModAS */
  423. SELECT
  424.  WHEN EXISTS('SYS:StartSys/c_Profile') THEN
  425.  DO
  426.   ModAS_User=1
  427.   InstallModAS=3
  428.  
  429.   CALL Msg_Con_Log('HHH Converting ModAS from MARInA to EASys!..')
  430.   CALL ExecScript('iGuide:Mar2eas_ModAS.script','')
  431.   CALL ExecScript('iGuide:Upd_StartSys.script',user_ver)
  432.   CALL DELAY(200)
  433.  END
  434.  
  435.  WHEN Update_ModAS=1 THEN
  436.  DO
  437.   InstallModAS=ActionMessage('ModAS-Startup.2')
  438.   IF InstallModAS=1 THEN
  439.   DO
  440.    ModAS_User=1
  441.    InstallModAS=3
  442.  
  443.    CALL Msg_Con_Log('HHH Updating an already running ModAS System..')
  444.    CALL ExecScript('iGuide:Upd_StartSys.script',user_ver)
  445.    CALL DELAY(200)
  446.   END
  447.  END
  448.  
  449.  OTHERWISE InstallModAS=ActionMessage('ModAS-Startup.1','ModAS-Startup.2')
  450. END
  451.  
  452. /*------------------------------ No ModAS */
  453. IF InstallModAS=2 THEN
  454. DO
  455.  ModAS_User=0
  456.  
  457.  CALL Msg_Con_Log('H ModAS deactivated by user request ..')
  458.  CALL DELAY(100)
  459.  
  460.  IF EXISTS('SYS:StartSys/a_Init') & EXISTS('SYS:StartSys/e_WB') & EXISTS('S:User-Startup.before_ModAS') & EXISTS('S:Startup-Sequence.before_ModAS') THEN
  461.  DO
  462.   CALL Msg_Con_Log('HHH Reconstructing standard startup...')
  463.   CALL ExecScript('iGuide:StartupStandard.script','')
  464.   CALL DELAY(100)
  465.  END
  466.  ELSE IF EXISTS('SYS:StartSys/a_Init') & EXISTS('SYS:StartSys/e_WB') THEN
  467.  DO
  468.   CALL Msg_Con_Log('HHH Converting  ModAS to Standard startup...')
  469.   CALL ExecScript('iGuide:ModAS2Standard.script','')
  470.   CALL DELAY(100)
  471.  END
  472.  
  473.  CMD.1=rEdit'movetext s:User-Startup ";ModAS" ";END ModAS" T:Trash'
  474.  CALL Do_and_Log
  475. END
  476.  
  477. /*------------------------------ (re-) Install ModAS on the system */
  478.  
  479. IF InstallModAS=1 THEN
  480. DO
  481.  SELECT
  482.   WHEN EXISTS('SYS:StartSys/a_Init/2_ENV') & EXISTS('S:Startup-Sequence.before_ModAS') & EXISTS('S:User-Startup.before_ModAS') THEN
  483.   DO
  484.     CALL Msg_Con_Log('HHH Reconstructing startup for a new ModAS conversion ...')
  485.     CALL ExecScript('iGuide:StartupStandard.script','')
  486.     CALL DELAY(100)
  487.   END
  488.  
  489.   /* ModAS2Standard has been activated before */
  490.   WHEN ~EXISTS('SYS:StartSys/a_Init') & EXISTS('S:Startup-Sequence.ModAS') & EXISTS('S:User-Startup.ModAS') & EXISTS('S:Startup-Sequence.before_ModAS') & EXISTS('S:User-Startup.before_ModAS') THEN
  491.   DO
  492.     CALL Msg_Con_Log('HHH Reverting to standard startup before updating ...')
  493.     CALL ExecScript('iGuide:RevertToStdStartup.script','')
  494.     CALL DELAY(100)
  495.   END
  496.  
  497.   OTHERWISE NOP
  498.  END /* SELECT */
  499.  
  500.  /* Basic ModAS PreInstallation */
  501.  InstName=' ModAS Startup '
  502.  SourceDir='iGuide_root:ModAS_System'
  503.  DestDir1='SYS:'
  504.  NoDeInstForFiles=1
  505.  CALL CopyAction
  506.  
  507.  
  508.  CALL Msg_Con_Log('H ModAS © TNE  automatic creation...')
  509.  CMD.1='assign Profile: SYS:StartSys/profiles/root'
  510.  CMD.2='setenv LOGIN root'
  511.  CMD.3='setenv LoggedLast root'
  512.  CMD.4='setenv LoggedPrevious guest'
  513.  CMD.5='copy ENV:Logged#? ENVARC CLONE QUIET'
  514.  CALL Do_and_Log
  515.  CALL DELAY(80)
  516.  
  517.  module='SYS:StartSys/c_Prepare/_Call_user-startup'
  518.  CALL Msg_Con_Log('HHH Extracting User-Startup-Call. This is included within ModAS now')
  519.  CMD.1=rEdit'movetext s:startup-sequence "if exists s:USER-STARTUP" "EndIf" 'module
  520.  CMD.2=rEdit'movetext s:startup-sequence "execute s:USER-STARTUP" "1LiNe" 'module
  521.  CMD.3='delete >NIL: SYS:StartSys/b_GUI/_Call_user-startup FORCE QUIET'
  522.  CALL Do_and_Log
  523.  
  524.  /* in any case, remove old stuff first */
  525.  CALL Msg_Con_Log('HHH Extracting old ModAS parts from Startup-Sequence..')
  526.  CMD.1=rEdit'movetext s:Startup-Sequence ";BEGIN ModAS" ";END ModAS" T:Trash'
  527.  CMD.2=rEdit'movetext s:Startup-Sequence ";BEGIN _MenuShortcuts" ";END _MenuShortcuts" T:Trash'
  528.  CMD.3=rEdit'movetext s:Startup-Sequence ";BEGIN _PubScreens" ";END _PubScreens" T:Trash'
  529.  CALL Do_and_Log
  530.  CALL DELAY(80)
  531.  
  532.  CALL Msg_Con_Log('HHH Extracting old ModAS parts from User-Startup.')
  533.  CMD.1=rEdit'movetext s:User-Startup ";ModAS © TNE)  Startup Phases" ";END ModAS" T:Trash'
  534.  CALL Do_and_Log
  535.  CALL DELAY(80)
  536.  
  537.  CALL Msg_Con_Log('HHH Extracting ConClip')
  538.  CMD.1=rEdit'movetext s:startup-sequence "ConClip" "1LiNe" T:Trash'
  539.  CALL Do_and_Log
  540.  CALL DELAY(80)
  541.  
  542.  CALL Msg_Con_Log('HHH Processing XPK .. see SYS:StartSys/c_Prepare/xpk')
  543.  CALL rmFromWBstartup('XFH#?','SYS:StartSys/c_prepare/xpk')
  544.  
  545.  CMD.1=rEdit'movetext s:startup-sequence ";BEGIN XPK" ";END" T:Trash'
  546.  CMD.2=rEdit'movetext s:startup-sequence "xpkmaster" "1LiNe" T:Trash'
  547.  CMD.3=rEdit'movetext s:startup-sequence "xpkmaster" "1LiNe" T:Trash'
  548.  CMD.4=rEdit'movetext s:startup-sequence ";BEGIN XFH" ";END" T:Trash'
  549.  CMD.5=rEdit'movetext s:startup-sequence "XFH" "1LiNe" T:Trash'
  550.  CMD.6=rEdit'movetext s:startup-sequence "XFH" "1LiNe" T:Trash'
  551.  CALL Do_and_Log
  552.  
  553.  CMD.1=rEdit'movetext s:User-Startup ";BEGIN XPK" ";END" T:Trash'
  554.  CMD.2=rEdit'movetext s:User-Startup "xpkmaster" "1LiNe" T:Trash'
  555.  CMD.3=rEdit'movetext s:User-Startup "xpkmaster" "1LiNe" T:Trash'
  556.  CMD.4=rEdit'movetext s:User-Startup ";BEGIN XFH" ";END" T:Trash'
  557.  CMD.5=rEdit'movetext s:User-Startup "XFH" "1LiNe" T:Trash'
  558.  CMD.6=rEdit'movetext s:User-Startup "XFH" "1LiNe" T:Trash'
  559.  CALL Do_and_Log
  560.  CALL DELAY(80)
  561.  
  562.  CALL Msg_Con_Log('HHH Extracting ENV and ENVARC stuff.')
  563.  CMD.1=rEdit'movetext s:startup-sequence " ENV: REMOVE" "1LiNe" T:Trash'
  564.  CMD.2=rEdit'movetext s:startup-sequence " ENV: ENVARC:" "1LiNe" T:Trash'
  565.  CMD.3=rEdit'movetext s:user-startup " ENV: ENVARC:" "1LiNe" T:Trash'
  566.  CMD.4=rEdit'movetext s:startup-sequence "HappyENV" "1LiNe" T:Trash'
  567.  CMD.5=rEdit'movetext s:user-startup "HappyENV" "1LiNe" T:Trash'
  568.  CALL Do_and_Log
  569.  CALL DELAY(80)
  570.  
  571.  module='SYS:StartSys/d_System/4_BeforeLoadWB'
  572.  CALL Msg_Con_Log('HHH Processing DefIcons ..')
  573.  CMD.1=rEdit'movetext s:startup-sequence "DefIcon" "1LiNe" 'module
  574.  CMD.2=rEdit'movetext s:startup-sequence "DefIcon" "1LiNe" 'module
  575.  
  576.  IF wb_port=1 THEN
  577.  DO
  578.   CALL Msg_Con_Log('HHH Removing OS3.5 incompatible stuff: startup-sequence ..')
  579.   CMD.1=rEdit'movetext s:startup-sequence "MathFFP" "1LiNe" T:Trash'
  580.   CMD.2=rEdit'movetext s:startup-sequence "MathFFP" "1LiNe" T:Trash'
  581.   CMD.3=rEdit'movetext s:startup-sequence "NSDpatch" "1LiNe" T:Trash'
  582.   CMD.4=rEdit'movetext s:startup-sequence "NSDpatch" "1LiNe" T:Trash'
  583.   CMD.5=rEdit'movetext s:startup-sequence "ramlibpatch" "1LiNe" T:Trash'
  584.   CMD.6=rEdit'movetext s:startup-sequence "iprefspatch" "1LiNe" T:Trash'
  585.   CMD.7=rEdit'movetext s:startup-sequence "iprefspatch" "1LiNe" T:Trash'
  586.   CMD.8=rEdit'movetext s:startup-sequence "PatchOpenWB" "1LiNe" T:Trash'
  587.   CMD.9=rEdit'movetext s:startup-sequence "PatchOpenWB" "1LiNe" T:Trash'
  588.   CALL Do_and_Log
  589.  
  590.   CALL Msg_Con_Log('HHH Removing OS3.5 incompatible stuff: user-startup ..')
  591.   CMD.1=rEdit'movetext s:user-startup ";BEGIN NewIcons" ";END" T:Trash'
  592.   CMD.2=rEdit'movetext s:user-startup "NewIcons" "1LiNe" T:Trash'
  593.   CMD.3=rEdit'movetext s:user-startup "MathFFP" "1LiNe" T:Trash'
  594.   CMD.4=rEdit'movetext s:user-startup ";BEGIN NSDpatch" ";END" T:Trash'
  595.   CMD.5=rEdit'movetext s:user-startup "NSDpatch" "1LiNe" T:Trash'
  596.   CALL Do_and_Log
  597.   CALL DELAY(80)
  598.  END
  599.  
  600.  CALL Msg_Con_Log('HHH Extracting KingCON if available')
  601.  CMD.1=rEdit'movetext s:Startup-Sequence ";BEGIN KCON" ";END" T:Trash'
  602.  CMD.2=rEdit'movetext s:Startup-Sequence ";BEGIN KingCON" ";END" T:Trash'
  603.  CMD.3=rEdit'movetext s:Startup-Sequence "KCON:" "1LiNe" T:Trash'
  604.  CMD.4=rEdit'movetext s:Startup-Sequence "KRAW:" "1LiNe" T:Trash'
  605.  
  606.  CMD.5=rEdit'movetext s:User-Startup ";BEGIN KCON" ";END" T:Trash'
  607.  CMD.6=rEdit'movetext s:User-Startup ";BEGIN KingCON" ";END" T:Trash'
  608.  CMD.7=rEdit'movetext s:User-Startup "KCON:" "1LiNe" T:Trash'
  609.  CMD.8=rEdit'movetext s:User-Startup "KRAW:" "1LiNe" T:Trash'
  610.  CALL Do_and_Log
  611.  CALL DELAY(80)
  612.  
  613.  module='SYS:StartSys/a_Init/0_Patches'
  614.  CALL Msg_Con_Log('HHH Moving Patch-calls to 'module)
  615.  CMD.1=rEdit'movetext s:startup-sequence "PatchControl" "1LiNe" 'module
  616.  CMD.2=rEdit'movetext s:startup-sequence "PatchControl" "1LiNe" 'module
  617.  CMD.3=rEdit'movetext s:user-startup "PatchControl" "1LiNe" 'module
  618.  CMD.4=rEdit'movetext s:user-startup "PatchControl" "1LiNe" 'module
  619.  CMD.5=rEdit'movetext s:startup-sequence "ramlibpatch" "1LiNe" 'module
  620.  CMD.6=rEdit'movetext s:startup-sequence "iprefspatch" "1LiNe" 'module
  621.  CMD.7=rEdit'movetext s:startup-sequence "iprefspatch" "1LiNe" 'module
  622.  CMD.8=rEdit'movetext s:startup-sequence "PatchOpenWB" "1LiNe" 'module
  623.  CMD.9=rEdit'movetext s:startup-sequence "PatchOpenWB" "1LiNe" 'module
  624.  CMD.10=rEdit'movetext s:startup-sequence "betteropenlibs" "1LiNe" 'module
  625.  CALL Do_and_Log
  626.  CALL DELAY(80)
  627.  
  628.  CALL Msg_Con_Log('HHH Processing WB Colour allocation tasks .. SYS:StartSys/b_GUI/1_IntuitionStartup')
  629.  CMD.1=rEdit'movetext s:user-startup "MagicWB-Demon" "1LiNe" T:Trash'
  630.  CMD.2=rEdit'movetext s:user-startup "MagicWB-Demon" "1LiNe" T:Trash'
  631.  CMD.3=rEdit'movetext s:user-startup "FullPalette" "1LiNe" T:Trash'
  632.  CMD.4=rEdit'movetext s:user-startup "FullPalette" "1LiNe" T:Trash'
  633.  CMD.5=rEdit'movetext s:startup-sequence "MagicWB-Demon" "1LiNe" T:Trash'
  634.  CMD.6=rEdit'movetext s:startup-sequence "MagicWB-Demon" "1LiNe" T:Trash'
  635.  CMD.7=rEdit'movetext s:startup-sequence "FullPalette" "1LiNe" T:Trash'
  636.  CMD.8=rEdit'movetext s:startup-sequence "FullPalette" "1LiNe" T:Trash'
  637.  CALL Do_and_Log
  638.  CALL DELAY(80)
  639.  
  640.  CALL Msg_Con_Log('HHH Processing ENVARC-Copying')
  641.  CMD.1=rEdit'movetext s:startup-sequence "ENVARC: RAM:ENV" "1LiNe" T:Trash'
  642.  CALL Do_and_Log
  643.  CALL DELAY(80)
  644.  
  645.  module='SYS:StartSys/a_Init/4_Path'
  646.  CALL Msg_Con_Log('HHH Extracting Path settings to 'module)
  647.  CMD.1=rEdit'movetext s:startup-sequence "PATH" "*sAmE" 'module
  648.  CALL Do_and_Log
  649.  CALL DELAY(80)
  650.  
  651.  module='SYS:StartSys/a_Init/1_Residents'
  652.  CALL Msg_Con_Log('HHH Extracting Residents to 'module)
  653.  CMD.1=rEdit'movetext s:startup-sequence "resident" "*sAmE" 'module
  654.  CALL Do_and_Log
  655.  CALL DELAY(80)
  656.  
  657.  CALL Msg_Con_Log('HHH Extracting System assignments to SYS:StartSys/a_Init/3_Assigns')
  658.  CMD.1=rEdit'movetext s:startup-sequence "DEVS:PRINTERS" "1LiNe" T:Trash'
  659.  CMD.2=rEdit'movetext s:startup-sequence "DEVS:Keymaps" "1LiNe" T:Trash'
  660.  CMD.3=rEdit'movetext s:startup-sequence "SYS:Locale/HELP" "1LiNe" T:Trash'
  661.  CMD.4=rEdit'movetext s:startup-sequence "Locale:HELP" "1LiNe" T:Trash'
  662.  CMD.5=rEdit'movetext s:startup-sequence "SYS:Locale" "1LiNe" T:Trash'
  663.  CMD.6=rEdit'movetext s:startup-sequence "SYS:Classes" "1LiNe" T:Trash'
  664.  CALL Do_and_Log
  665.  CALL DELAY(80)
  666.  
  667.  module='SYS:StartSys/a_Init/3_Mouse'
  668.  CALL Msg_Con_Log('HHH Processing mouse drivers if in use .. 'module)
  669.  CMD.1='echo >'module' "failat 30*nstack 8192"'
  670.  CMD.2=rEdit'movetext s:startup-sequence "4dplus" "1LiNe" 'module
  671.  CMD.3=rEdit'movetext s:startup-sequence "4dplus" "1LiNe" 'module
  672.  CMD.4=rEdit'movetext s:startup-sequence "NewMouse" "1LiNe" 'module
  673.  CMD.5=rEdit'movetext s:startup-sequence "NewMouse" "1LiNe" 'module
  674.  CMD.6=rEdit'movetext s:startup-sequence "SerMouse" "1LiNe" 'module
  675.  CMD.7=rEdit'movetext s:startup-sequence "SerMouse" "1LiNe" 'module
  676.  CMD.8=rEdit'movetext s:startup-sequence "MouseWheel" "1LiNe" 'module
  677.  CMD.9=rEdit'movetext s:startup-sequence "MouseWheel" "1LiNe" 'module
  678.  CMD.10=rEdit'movetext s:startup-sequence "MUIwheelPatch" "1LiNe" 'module
  679.  CMD.11=rEdit'movetext s:startup-sequence "MUIwheelPatch" "1LiNe" 'module
  680.  CMD.12=rEdit'movetext s:startup-sequence "MButton" "1LiNe" 'module
  681.  CMD.13=rEdit'movetext s:startup-sequence "MButton" "1LiNe" 'module
  682.  CMD.14=rEdit'movetext s:User-Startup "BEGIN 4dplus" ";END " 'module
  683.  CMD.15=rEdit'movetext s:User-Startup "4dplus" "1LiNe" 'module
  684.  CMD.16=rEdit'movetext s:User-Startup "BEGIN NewMouse" ";END " 'module
  685.  CMD.17=rEdit'movetext s:User-Startup "NewMosue" "1LiNe" 'module
  686.  CMD.18=rEdit'movetext s:User-Startup "BEGIN SerMouse" ";END " 'module
  687.  CMD.19=rEdit'movetext s:User-Startup "SerMouse" "1LiNe" 'module
  688.  CMD.20=rEdit'movetext s:User-Startup "BEGIN MouseWheel" ";END " 'module
  689.  CMD.21=rEdit'movetext s:User-Startup "MouseWheel" "1LiNe" 'module
  690.  CMD.22=rEdit'movetext s:User-Startup "BEGIN MUIwheelPatch" ";END " 'module
  691.  CMD.23=rEdit'movetext s:User-Startup "MUIwheelPatch" "1LiNe" 'module
  692.  CMD.24=rEdit'movetext s:User-Startup "BEGIN MButton" ";END " 'module
  693.  CMD.25=rEdit'movetext s:User-Startup "MButton" "1LiNe" 'module
  694.  CALL Do_and_Log
  695.  CALL DELAY(80)
  696.  
  697.  module='SYS:StartSys/a_Init/3_IOcard'
  698.  CALL Msg_Con_Log('HHH Processing Serial expansions if available .. 'module)
  699.  CMD.1='echo >'module' "failat 30*nstack 8192"'
  700.  CMD.2=rEdit'movetext s:startup-sequence "BEGIN IOblix" ";END " 'module
  701.  CMD.3=rEdit'movetext s:startup-sequence "IOblix" "1LiNe" 'module
  702.  CMD.4=rEdit'movetext s:startup-sequence "IOblix" "1LiNe" 'module
  703.  CMD.5=rEdit'movetext s:User-Startup "BEGIN IOblix" ";END " 'module
  704.  CMD.6=rEdit'movetext s:User-Startup "IOblix" "1LiNe" 'module
  705.  CMD.7=rEdit'movetext s:User-Startup "IOblix" "1LiNe" 'module
  706.  
  707.  CMD.8=rEdit'movetext s:startup-sequence "BEGIN HyperCOM" ";END " 'module
  708.  CMD.9=rEdit'movetext s:startup-sequence "HyperCOM" "1LiNe" 'module
  709.  CMD.10=rEdit'movetext s:startup-sequence "HyperCOM" "1LiNe" 'module
  710.  CMD.11=rEdit'movetext s:User-Startup "BEGIN HyperCOM" ";END " 'module
  711.  CMD.12=rEdit'movetext s:User-Startup "HyperCOM" "1LiNe" 'module
  712.  
  713.  CMD.13=rEdit'movetext s:startup-sequence "BEGIN MFC3" ";END " 'module
  714.  CMD.14=rEdit'movetext s:startup-sequence "MFC3" "1LiNe" 'module
  715.  CMD.15=rEdit'movetext s:startup-sequence "MFC3" "1LiNe" 'module
  716.  CMD.16=rEdit'movetext s:User-Startup "BEGIN MFC3" ";END " 'module
  717.  CMD.17=rEdit'movetext s:User-Startup "MFC3" "1LiNe" 'module
  718.  
  719.  CMD.18=rEdit'movetext s:startup-sequence "BEGIN MultiFace" ";END " 'module
  720.  CMD.19=rEdit'movetext s:startup-sequence "MultiFace" "1LiNe" 'module
  721.  CMD.20=rEdit'movetext s:startup-sequence "MultiFace" "1LiNe" 'module
  722.  CMD.21=rEdit'movetext s:User-Startup "BEGIN MultiFace" ";END " 'module
  723.  CMD.22=rEdit'movetext s:User-Startup "MultiFace" "1LiNe" 'module
  724.  CALL Do_and_Log
  725.  CALL DELAY(80)
  726.  
  727.  CALL Msg_Con_Log('HHH Extracting Monitor-Setup to SYS:StartSys/a_Init/5_MonitorSetup')
  728.  CMD.1=rEdit'movetext s:startup-sequence "BEGIN Picasso96" ";END Picasso96" T:P96'
  729.  CMD.2=rEdit'movetext s:startup-sequence "Picasso96" "1LiNe" T:P96'
  730.  CMD.3=rEdit'movetext s:user-startup "BEGIN Picasso96" ";END Picasso96" T:P96'
  731.  CMD.4=rEdit'movetext s:user-startup "Picasso96" "1LiNe" T:P96'
  732.  CMD.5=rEdit'movetext s:startup-sequence "IF EXISTS DEVS:MONITORS/VGAONLY" "ENDIF" SYS:StartSys/a_Init/_5_MonitorSetupVGA'
  733.  CMD.6=rEdit'movetext s:startup-sequence "IF EXISTS DEVS:MONITORS/MULTISYNC" "ENDIF" SYS:StartSys/a_Init/_5_MonitorSetupMSync'
  734.  CMD.7=rEdit'movetext s:startup-sequence "IF EXISTS DEVS:MONITORS" "ENDIF" SYS:StartSys/a_Init/_5_MonitorSetup.bak'
  735.  CMD.8=rEdit'movetext s:startup-sequence "DEVS:MONITORS" "*sAmE" SYS:StartSys/a_Init/_5_MonitorSetup.bak'
  736.  CMD.9=rEdit'movetext s:startup-sequence "execute T:M" "1LiNe" SYS:StartSys/a_Init/_5_MonitorSetup.bak'
  737.  CMD.10=rEdit'movetext s:startup-sequence "delete >NIL: T:M" "1LiNe" SYS:StartSys/a_Init/_5_MonitorSetup.bak'
  738.  CALL Do_and_Log
  739.  
  740.  IF EXISTS('T:P96') THEN
  741.  DO
  742.   CMD.1='echo >T:P96_1 "failat 30"'
  743.   CMD.2='join T:P96_1 T:P96 as T:P96_2'
  744.   CMD.3='join T:P96_2 SYS:StartSys/a_Init/5_MonitorSetup as T:P96_3'
  745.   CMD.4='copy T:P96_3 SYS:StartSys/a_Init/5_MonitorSetup CLONE QUIET'
  746.   CALL Do_and_Log
  747.  
  748.   ADDRESS COMMAND 'delete >NIL: T:P96#? FORCE QUIET'
  749.  END
  750.  CALL DELAY(80)
  751.  
  752.  module='SYS:StartSys/d_System/2_Devices'
  753.  CALL Msg_Con_Log('HHH Extracting DosDrivers Setup to 'module)
  754.  CMD.1=rEdit'movetext s:startup-sequence "BindDrivers" "DEVS:DOSDRIVERS" 'module
  755.  CMD.2=rEdit'movetext s:startup-sequence "DEVS:DOSDRIVERS" "*sAmE" 'module
  756.  CALL Do_and_Log
  757.  CALL DELAY(80)
  758.  
  759.  module='SYS:StartSys/d_System/4_BeforeLoadWB'
  760.  CALL Msg_Con_Log('HHH Extracting Intuition-Preconfig to 'module)
  761.  CMD.1=rEdit'movetext s:startup-sequence "Rainboot" "1LiNe" SYS:StartSys/b_GUI/5_MultiMediaBoot'
  762.  CMD.2=rEdit'movetext s:startup-sequence "~~C:IPrefs" "~~LoadWB" 'module
  763.  CMD.3=rEdit'movetext s:startup-sequence "~~C/IPrefs" "~~C/LoadWB" 'module
  764.  CMD.4=rEdit'movetext s:startup-sequence "~~C:FastIPrefs" "~~C:LoadWB" 'module
  765.  CMD.5=rEdit'movetext s:startup-sequence "~~IPrefs" "~~LoadWB" 'module
  766.  CMD.6=rEdit'movetext s:startup-sequence "~~FastIPrefs" "~~LoadWB" 'module
  767.  CALL Do_and_Log
  768.  CALL DELAY(80)
  769.  
  770.  module='SYS:StartSys/e_WB/4_AfterLoadWB'
  771.  CALL Msg_Con_Log('HHH Extracting Post-Workbench-Parts to 'module)
  772.  CMD.1=rEdit'movetext s:startup-sequence "~~C:LoadWB" "~~EndCLI" 'module
  773.  CMD.2=rEdit'movetext s:startup-sequence "~~LoadWB" "~~EndCLI" 'module
  774.  CMD.3=rEdit'movetext s:startup-sequence "~~C:Scalos" "~~EndCLI" 'module
  775.  CMD.4=rEdit'movetext s:startup-sequence "~~Scalos" "~~EndCLI" 'module
  776.  CMD.5=rEdit'movetext s:startup-sequence "~~C:DOpus" "~~EndCLI" 'module
  777.  CMD.6=rEdit'movetext s:startup-sequence "~~DOpus" "~~EndCLI" 'module
  778.  CMD.7=rEdit'movetext s:startup-sequence "~~C:DirectoryOpus" "~~EndCLI" 'module
  779.  CMD.8=rEdit'movetext s:startup-sequence "~~DirectoryOpus" "~~EndCLI" 'module
  780.  CMD.9=rEdit'movetext s:startup-sequence "~~C:Magellan" "~~EndCLI" 'module
  781.  CALL Do_and_Log
  782.  CALL DELAY(80)
  783.  
  784.  module='SYS:StartSys/e_WB/1_Workbench'
  785.  envT='ENV:WB-Loader'
  786.  ADDRESS COMMAND 'delete >NIL: 'envT' FORCE QUIET'
  787.  CALL Msg_Con_Log('HHH Extracting Workbench-Start to 'module)
  788.  CMD.1=rEdit'movetext s:startup-sequence "C:LoadWB" "1LiNe" 'envT
  789.  CMD.2=rEdit'movetext s:startup-sequence "LOADWB" "1LiNe" 'envT
  790.  CMD.3=rEdit'movetext s:startup-sequence "LOADWB" "1LiNe" 'envT
  791.  CMD.4=rEdit'movetext s:startup-sequence "Scalos" "1LiNe" 'envT
  792.  CMD.5=rEdit'movetext s:startup-sequence "Scalos" "1LiNe" 'envT
  793.  CMD.6=rEdit'movetext s:startup-sequence "DOpus" "1LiNe" 'envT
  794.  CMD.7=rEdit'movetext s:startup-sequence "DOpus" "1LiNe" 'envT
  795.  CMD.8=rEdit'movetext s:startup-sequence "DirectoryOpus" "1LiNe" 'envT
  796.  CMD.9=rEdit'movetext s:startup-sequence "DirectoryOpus" "1LiNe" 'envT
  797.  CMD.10=rEdit'movetext s:startup-sequence "Magellan" "1LiNe" 'envT
  798.  CMD.11=rEdit'movetext s:startup-sequence "Magellan" "1LiNe" 'envT
  799.  CMD.12='Install_C:ReplaceStrings 'module' "c:LoadWB" "${WB-Loader}"'
  800.  CALL Do_and_Log
  801.  CALL DELAY(80)
  802.  
  803.  module='S:Startup-Sequence'
  804.  CALL Msg_Con_Log('HHH Inserting ModAS Module into 'module)
  805.  CMD.1=rEdit'inserttext "iGuide:init/ModAS.sseq" "IPREFS" 'module
  806.  CALL Do_and_Log
  807.  CALL DELAY(80)
  808.  
  809.  module='SYS:StartSys/b_GUI/1_IntuitionStartup'
  810.  CALL Msg_Con_Log('HHH Processing WBCtrl if available .. 'module)
  811.  CMD.1=rEdit'movetext s:startup-sequence "WBCtrl" "1LiNe" 'module
  812.  CMD.2=rEdit'movetext s:startup-sequence "WBCtrl" "1LiNe" 'module
  813.  CMD.3=rEdit'movetext s:user-startup "WBCtrl" "1LiNe" 'module
  814.  CMD.4=rEdit'movetext s:user-startup "WBCtrl" "1LiNe" 'module
  815.  
  816.  /* already supplied with sys:startsys/b_GUI/1_IntuitionStartup - remove here */
  817.  CMD.5=rEdit'movetext s:user-startup "LoadResource" "1LiNe" T:Trash'
  818.  CMD.6=rEdit'movetext s:user-startup "LoadResource" "1LiNe" T:Trash'
  819.  CMD.7=rEdit'movetext s:user-startup "AddDataTypes" "1LiNe" T:Trash'
  820.  CMD.8=rEdit'movetext s:user-startup "AddDataTypes" "1LiNe" T:Trash'
  821.  CALL Do_and_Log
  822.  CALL DELAY(80)
  823.  
  824.  module='SYS:StartSys/b_GUI/1_IntuitionStartup'
  825.  CALL Msg_Con_Log('HHH Processing GUI patches if available .. 'module)
  826.  CMD.1=rEdit'movetext s:startup-sequence ";BEGIN VisualPrefs" ";END" 'module
  827.  CMD.2=rEdit'movetext s:startup-sequence "VisualPrefs" "1LiNe" 'module
  828.  CMD.3=rEdit'movetext s:startup-sequence "VisualPrefs" "1LiNe" 'module
  829.  CMD.4=rEdit'movetext s:user-startup ";BEGIN VisualPrefs" ";END" 'module
  830.  CMD.5=rEdit'movetext s:user-startup "VisualPrefs" "1LiNe" 'module
  831.  CMD.6=rEdit'movetext s:user-startup "VisualPrefs" "1LiNe" 'module
  832.  
  833.  CMD.7=rEdit'movetext s:user-startup ";BEGIN Birdie" ";END" 'module
  834.  CMD.8=rEdit'movetext s:user-startup "Birdie" "1LiNe" 'module
  835.  CMD.9=rEdit'movetext s:user-startup "Birdie" "1LiNe" 'module
  836.  CMD.10=rEdit'movetext s:startup-sequence ";BEGIN Birdie" ";END" 'module
  837.  CMD.11=rEdit'movetext s:startup-sequence "Birdie" "1LiNe" 'module
  838.  CMD.12=rEdit'movetext s:startup-sequence "Birdie" "1LiNe" 'module
  839.  CALL Do_and_Log
  840.  
  841.  CMD.1=rEdit'movetext s:startup-sequence ";BEGIN SysIHack" ";END" 'module
  842.  CMD.2=rEdit'movetext s:startup-sequence "SysIHack" "1LiNe" 'module
  843.  CMD.3=rEdit'movetext s:startup-sequence "SysIHack" "1LiNe" 'module
  844.  
  845.  CMD.4=rEdit'movetext s:startup-sequence ";BEGIN SysI2" ";END" 'module
  846.  CMD.5=rEdit'movetext s:startup-sequence "SysI2" "1LiNe" 'module
  847.  CMD.6=rEdit'movetext s:startup-sequence "SysI2" "1LiNe" 'module
  848.  
  849.  CMD.7=rEdit'movetext s:startup-sequence ";BEGIN Urou" ";END" 'module
  850.  CMD.8=rEdit'movetext s:startup-sequence "Urou" "1LiNe" 'module
  851.  CMD.9=rEdit'movetext s:startup-sequence "Urou" "1LiNe" 'module
  852.  
  853.  CMD.10=rEdit'movetext s:user-startup ";BEGIN SysIHack" ";END" 'module
  854.  CMD.11=rEdit'movetext s:user-startup "SysIHack" "1LiNe" 'module
  855.  CMD.12=rEdit'movetext s:user-startup "SysIHack" "1LiNe" 'module
  856.  
  857.  CMD.13=rEdit'movetext s:user-startup ";BEGIN SysI2" ";END" 'module
  858.  CMD.14=rEdit'movetext s:user-startup "SysI2" "1LiNe" 'module
  859.  CMD.15=rEdit'movetext s:user-startup "SysI2" "1LiNe" 'module
  860.  
  861.  CMD.16=rEdit'movetext s:user-startup ";BEGIN Urou" ";END" 'module
  862.  CMD.17=rEdit'movetext s:user-startup "Urou" "1LiNe" 'module
  863.  CMD.18=rEdit'movetext s:user-startup "Urou" "1LiNe" 'module
  864.  CALL Do_and_Log
  865.  CALL DELAY(80)
  866.  
  867.  module='SYS:StartSys/b_GUI/1_IntuitionStartup'
  868.  CALL Msg_Con_Log('HHH Processing Intuition-Startup .. 'module)
  869.  CMD.1=rEdit'movetext s:startup-sequence "FastIPrefs" "1LiNe" 'module
  870.  CMD.2=rEdit'movetext s:startup-sequence "FastIPrefs" "1LiNe" 'module
  871.  CMD.3=rEdit'movetext s:startup-sequence "IPrefs" "1LiNe" 'module
  872.  CMD.4=rEdit'movetext s:startup-sequence "IPrefs" "1LiNe" 'module
  873.  CALL Do_and_Log
  874.  CALL DELAY(80)
  875.  
  876.  CALL Msg_Con_Log('HHH Processing Rexx initialisation: SYS:StartSys/a_Init/Rexx')
  877.  CMD.1=rEdit'movetext s:user-startup ";BEGIN REXX" ";END" T:Trash'
  878.  CMD.2=rEdit'movetext s:user-startup "RexxMast" "1LiNe" T:Trash'
  879.  CMD.3=rEdit'movetext s:user-startup "RexxMast" "1LiNe" T:Trash'
  880.  CMD.4=rEdit'movetext s:startup-sequence "RexxMast" "1LiNe" T:Trash'
  881.  CMD.5=rEdit'movetext s:startup-sequence "RexxMast" "1LiNe" T:Trash'
  882.  
  883.  CMD.6='copy >NIL: SYS:WBstartup/RexxMast#? SYS:System CLONE QUIET'
  884.  CMD.7='copy >NIL: "SYS:WBstartup/WBstartup (enabled)/RexxMast#?" SYS:System CLONE QUIET'
  885.  CMD.8='copy >NIL: SYS:WBstartup/WBstartup(enabled)/RexxMast#? SYS:System CLONE QUIET'
  886.  CMD.9='copy >NIL: "SYS:WBstartup (enabled)/RexxMast#?" SYS:System CLONE QUIET'
  887.  CMD.10='copy >NIL: SYS:WBstartup(enabled)/RexxMast#? SYS:System CLONE QUIET'
  888.  CALL Do_and_Log
  889.  
  890.  CALL rmFromWBstartup('RexxMast#?','SYS:StartSys/a_Init/Rexx')
  891.  CALL DELAY(80)
  892.  
  893.  /* merged scripts exist already on systems starting EASys! version 4.6.4 */
  894.  IF user_ver<4.6.4 THEN
  895.  DO
  896.    module='SYS:StartSys/b_GUI/7_ShellConfig'
  897.    CALL Msg_Con_Log('HHH Joining EASys! Shell Init and S:Shell-Startup to 'module)
  898.    CMD.1=rEdit'movetext s:Shell-Startup ";BEGIN EASys!_ShellConfig" ";END EASys!_ShellConfig" T:Trash'
  899.    CMD.2=rEdit'movetext s:Shell-Startup ";BEGIN s:Shell-Startup appended" ";END s:Shell-Startup appended" T:Trash'
  900.    CMD.3='echo >>'module' "*n;BEGIN s:Shell-Startup appended."'
  901.    CMD.4='type >>'module' s:Shell-Startup'
  902.    CMD.5='echo >>'module' ";END s:Shell-Startup appended.*n"'
  903.    CALL Do_and_Log
  904.    CALL DELAY(80)
  905.  END
  906.  
  907.  CALL Msg_Con_Log('HHH Extracting Application modules from s:User-Startup to SYS:StartSys/c_Prepare/')
  908.  CMD.1='rx Install_C:Extract-User-Startup.rexx'
  909.  CMD.2='delete >NIL: SYS:StartSys/ModAS_activated FORCE QUIET'
  910.  CMD.3='date >SYS:StartSys/ModAS_activated'
  911.  CALL Do_and_Log
  912.  CALL DELAY(80)
  913. END
  914. /*------------------------------ Finish ModAS */
  915. InstName=' Finish ModAS '
  916.  
  917. IF ~EXISTS('SYS:StartSys/ModAS_activated') THEN
  918.  ModAS_user=0
  919. ELSE
  920. DO
  921.  ModAS_user=1
  922.  
  923.  CALL Msg_Con_Log('HHHHH Finishing ModAS Setup ...')
  924.  CALL ExecScript('iGuide:FinishModAS.script','')
  925.  CALL DELAY(80)
  926.  
  927.  CALL Msg_Con_Log('HHHHH Completing DeInstaller code for ModAS ...')
  928.  r=wdi('echo "*e[1m Reactivating original Startup.*e[0m" NOLINE')
  929.  r=wdi('wait 3')
  930.  r=wdi('execute SYS:StartSys/ModAS2Standard')
  931.  r=wdi('wait 15')
  932.  CALL SpaceNextEntry
  933.  
  934.  IF wb_port=1 THEN
  935.  DO
  936.   /* OS3.5 users should not and need not use NewIcons anymore */
  937.   CMD.1='echo >ENV:Flags/NEW_ICONS "0"'
  938.   CMD.2='echo >SYS:StartSys/Profiles/$LOGIN/ENV/Flags/NEW_ICONS "0"'
  939.   CMD.3='echo >SYS:StartSys/Profiles/root/ENV/Flags/NEW_ICONS "0"'
  940.   CMD.4='echo >SYS:StartSys/Profiles/guest/ENV/Flags/NEW_ICONS "0"'
  941.   CALL Do_and_Log
  942.  END
  943.  
  944.  CMD.1='copy SYS:disk.info SYS:StartSys/profiles/root/Icons/SYS CLONE QUIET'
  945.  CMD.2='copy SYS:disk.info SYS:StartSys/profiles/guest/Icons/SYS CLONE QUIET'
  946.  CMD.3='copy RAM:disk.info SYS:StartSys/profiles/root/Icons/RAM CLONE QUIET'
  947.  CMD.4='copy RAM:disk.info SYS:StartSys/profiles/guest/Icons/RAM CLONE QUIET'
  948.  CMD.5='copy ENV:sys SYS:StartSys/profiles/root/ENV/sys CLONE ALL QUIET'
  949.  CMD.6='copy SYS:StartSys/profiles/root/ENV SYS:StartSys/profiles/guest/ENV CLONE ALL QUIET'
  950.  CALL Do_and_Log
  951.  
  952.  CMD.1='copy iGuide:upd/StartSys/#? SYS:StartSys CLONE ALL QUIET'
  953.  CALL Do_and_Log
  954. END
  955.  
  956. IF ModAS_user=0 & User_Ver<4.6.4 THEN
  957. DO
  958.  module='S:Shell-Startup'
  959.  CMD.1='echo >>'module' "*n;BEGIN EASys!_ShellConfig appended."'
  960.  CMD.2='type >>'module' "iGuide_root:ModAS_System/StartSys/b_GUI/7_ShellConfig"'
  961.  CMD.3='echo >>'module' "*n;END EASys!_ShellConfig appended.*n"'
  962.  CMD.4=rEdit'movetext 'module' ";BEGIN ModAS_StartupShell" ";END ModAS_StartupShell" T:Trash'
  963.  CMD.5=rEdit'movetext 'module' ";BEGIN ActualPath" "1LiNe" T:Trash'
  964.  CMD.6=rEdit'movetext 'module' ";END ActualPath" "1LiNe" T:Trash'
  965.  CALL Do_and_Log
  966.  CALL DELAY(80)
  967. END
  968.  
  969. IF EXISTS('s:startup-sequence'TimeStamp) THEN ADDRESS COMMAND 'delete s:startup-sequence.1 FORCE QUIET'
  970. IF EXISTS('SYS:StartSys/b_GUI/7_ShellConfig') THEN
  971.  ADDRESS COMMAND 'setenv SHELLSTARTUP "SYS:StartSys/b_GUI/7_ShellConfig"'
  972. ELSE
  973.  ADDRESS COMMAND 'setenv SHELLSTARTUP "S:Shell-Startup"'
  974.  
  975. ADDRESS COMMAND 'delete >NIL: iGuide_root:ModAS_System FORCE ALL QUIET'
  976.  
  977. CALL SpaceNextEntry
  978. CALL CloseCon
  979. RETURN
  980.  
  981. /* ------------------------- */
  982. References_Init:
  983. InstName=' Preparing EASys! References ...'
  984. CALL Msg_Con_Log('HHHHH Updating References ...')
  985.  
  986. IF ~EXISTS('ENV:RefTable') THEN
  987. DO
  988.  CMD.1='makedir >NIL: ENV:RefTable'
  989.  CALL Do_and_Log
  990. END
  991.  
  992. IF user_ver<Update_EndVer & update>0 THEN
  993. DO
  994.   CMD.1='copy iGuide:update/EASys!/SysDataBase/RefTable SYS:EASys!/SysDataBase/RefTable CLONE ALL QUIET'
  995.   CMD.2='copy iGuide:update/EASys!/SysDataBase/RefTable ENV:RefTable CLONE ALL QUIET'
  996.   CALL Do_and_Log
  997. END
  998.  
  999. IF EXISTS('ENV:RefTable/WindowChecker') | EXISTS('ENV:RefTable/net-mailscreen') | EXISTS('ENV:RefTable/FileManager') THEN
  1000. DO
  1001.  Action=ShowMessage('UserReferences-Update',,,,AppName)
  1002.  CALL Msg_Con_Log('HHH Converting old References and update ...')
  1003.  CMD.1='rx iGuide:ConvertOldRefs.rexx'
  1004.  CALL Do_and_Log
  1005. END
  1006.  
  1007. IF (User_Ver < 4.6.4) & (Update > 0) THEN
  1008. DO
  1009.  CALL Msg_Con_Log('HHH References finishing ...')
  1010.  CALL ExecScript('iGuide:NewRefs.script','')
  1011. END
  1012.  
  1013. CALL CloseCon
  1014. CALL SpaceNextEntry
  1015. RETURN
  1016.  
  1017. /* ------------------------- */
  1018. InitBase:
  1019. InstName=' Preparing EASys! '
  1020. moduleSrc='iGuide:Init/EASys!'
  1021. CALL Msg_Con_Log('H Preparing EASys! for immediate usability ...')
  1022.  
  1023. /* prevent wb_menu from starting immediately: */
  1024. CALL setclip('Language','')
  1025.  
  1026. IF EASys_from_HD=0 THEN
  1027.  ADDRESS COMMAND 'type >>"'moduleSrc'" "iGuide:init/EASys!.ENV"'
  1028. ELSE
  1029.  ADDRESS COMMAND 'type >>"'moduleSrc'" "iGuide:init/EASys!.HD"'
  1030.  
  1031. ADDRESS COMMAND
  1032. 'type >>"'moduleSrc'" "iGuide:init/EASys!.aliases"'
  1033. 'copy ENVARC:MultiNotify.prefs ENV: CLONE QUIET'
  1034.  
  1035. IF ModAS_user=1 THEN
  1036. DO
  1037.  module='SYS:StartSys/c_Prepare/EASys!'
  1038.  ADDRESS COMMAND 'copy "'moduleSrc'" "'module'" CLONE QUIET'
  1039. END
  1040. ELSE /* No ModAS User... does not want to have a more modern system :( */
  1041. DO
  1042.  module='s:User-Startup'
  1043.  
  1044.  ADDRESS COMMAND
  1045.  rEdit'movetext 'module' ";BEGIN EASys!" ";END EASys!" T:Trash'
  1046.  rEdit'movetext 'module' ";BEGIN EASys!" ";END EASys!" T:Trash'
  1047.  rEdit'movetext 'module' ";BEGIN KCON" ";END" T:Trash'
  1048.  rEdit'movetext 'module' ";BEGIN KINGCON" ";END" T:Trash'
  1049.  'echo >>'module' ";BEGIN EASys!"'
  1050.  'type >>'module' "'moduleSrc'"'
  1051.  'echo >>'module' ";END EASys!"'
  1052.  'echo >>'module' ";BEGIN KCON"'
  1053.  'type >>'module' T:KCON'
  1054.  'echo >>'module' ";END KCON"'
  1055. END
  1056.  
  1057. IF ~Assigned('KCON:') THEN
  1058. DO
  1059.  CMD.1='execute "T:KCON"'
  1060.  CMD.2=WBrun' devs:dosdrivers/KCON'
  1061.  CALL Do_and_Log
  1062. END
  1063.  
  1064. /* Start EASys!, but keep MultiNotify (File Notify Deamon) disabled
  1065.    until end of installation (Finish.script)*/
  1066.  
  1067. CMD.1='execute "'moduleSrc'"'
  1068. CMD.2='SYS:EASys!/bin/CLIexchange MultiNotify DISABLE'
  1069. CALL Do_and_Log
  1070.  
  1071. CALL removeCdity('MultiNotify','New place: EASys!:bin/ .. Startup within "'module'"')
  1072.  
  1073. r=wdi('echo "*e[1m Removing EASys! main directory[0m" NOLINE')
  1074. r=wdi('delete SYS:EASys! FORCE ALL')
  1075. CALL SpaceNextEntry
  1076. CALL CloseCon
  1077. RETURN
  1078.  
  1079. /* ------------------------- */
  1080. mkRef:
  1081. PARSE ARG ref,line,getflag
  1082.  
  1083. IF getflag='GETREF' THEN
  1084.  line='rx EASys!:SysDatabase/ReferencePrefs.rexx 'ref
  1085. ELSE
  1086.  CALL Msg_Con_Log('HHHH Created Reference: ${RefTable/'ref'}HHH Value: 'line)
  1087.  
  1088. CALL OPEN(fTMP,'EASys!:SysDataBase/RefTable/'ref,'W')
  1089. CALL WRITELN(fTMP,line)
  1090. CALL Close(fTMP)
  1091.  
  1092. CALL OPEN(fTMP,'ENV:RefTable/'ref,'W')
  1093. CALL WRITELN(fTMP,line)
  1094. CALL Close(fTMP)
  1095.  
  1096. IF assigned('Profile:') THEN
  1097. DO
  1098.  IF EXISTS('Profile:RefTable/'ref) THEN
  1099.  DO
  1100.   CALL OPEN(fTMP,'Profile:RefTable/'ref,'W')
  1101.   CALL WRITELN(fTMP,line)
  1102.   CALL Close(fTMP)
  1103.  END
  1104. END
  1105.  
  1106. RETURN
  1107. /* ------------------------- */
  1108. References:
  1109. InstName=' References installer '
  1110. r=ShowMessage('UserReferences',,,,AppName)
  1111. r=ShowMessage('UserReferences2',,,,AppName)
  1112.  
  1113. CALL Msg_Con_Log('H Installing EASys! Reference system...')
  1114.  
  1115. IF wb_port=1 THEN
  1116. DO
  1117.  CALL mkRef('Archive-Manager','rx EASys!_rexx:ArchiveManager.rexx')
  1118.  CALL mkRef('File-Presentate','rx EASys!_rexx:Presentate.rexx')
  1119. END
  1120. ELSE
  1121. DO
  1122.  CALL mkRef('Archive-Manager','rx EASys!_rexx:ArchiveManager_OS31.rexx')
  1123.  CALL mkRef('File-Presentate','rx EASys!_rexx:Presentate_OS31.rexx')
  1124. END
  1125.  
  1126. SnoopDos=FindProg('SnoopDos','SnoopDos2')
  1127. IF ~(SnoopDos='') THEN 
  1128.  CALL mkRef('Disk-Snoop','EASys!_bin:WBrun "'SnoopDos'"')
  1129. ELSE
  1130.  CALL mkRef('Disk-Snoop','','GETREF')
  1131.  
  1132. DiskSalv=FindProg('DiskSalv','DiskSalv2')
  1133. IF ~(DiskSalv='') THEN 
  1134.  CALL mkRef('DiskSalv',DiskSalv)
  1135. ELSE
  1136.  CALL mkRef('DiskSalv','','GETREF')
  1137.  
  1138. PDFview=FindProg('Apdf','Apdf')
  1139. IF ~(PDFview='') THEN 
  1140.  CALL mkRef('Text-ViewPDF','EASys!_bin:WBrun "'PDFview'" ARGS')
  1141. ELSE
  1142.  CALL mkRef('Text-ViewPDF','','GETREF')
  1143.  
  1144. CALL mkRef('Text-ViewHTML','rx EASys!_bin:Network/Browser/Browser-Start_HTML.rexx')
  1145.  
  1146. CALL mkRef('ViewPix-ILBM','SYS:Utilities/MultiView')
  1147. CALL mkRef('ViewPix-ILBM-Opts',' ')
  1148. CALL mkRef('ViewPix-HAM','SYS:Utilities/MultiView')
  1149. CALL mkRef('ViewPix-HAM-Opts','>NIL: SCREEN')
  1150.  
  1151. ViewPix=''
  1152. CyberShow=FindProg('cybershow','cybershow')
  1153. IF CyberShow='' THEN Visage=FindProg('Visage','Visage')
  1154. IF Visage='' THEN FastView=FindProg('FastView','FastView')
  1155. IF FastView='' THEN ViewPix='SYS:Utilities/MultiView'
  1156.  
  1157. IF ~(FastView='') THEN ViewPix=FastView
  1158. IF ~(Visage='') THEN ViewPix=Visage
  1159. IF ~(CyberShow='') THEN ViewPix=CyberShow
  1160. IF ~(ViewPix='') THEN
  1161. DO
  1162.  CALL mkRef('ViewPix-JPG',ViewPix)
  1163.  CALL mkRef('ViewPix-BMP',ViewPix)
  1164.  CALL mkRef('ViewPix-GIF',ViewPix)
  1165.  CALL mkRef('ViewPix-PCX',ViewPix)
  1166.  CALL mkRef('ViewPix-PNG',ViewPix)
  1167.  CALL mkRef('ViewPix-std',ViewPix)
  1168.  CALL mkRef('ViewPix-PNG',ViewPix)
  1169. END
  1170. ELSE
  1171. DO
  1172.  CALL mkRef(tref,'','GETREF')
  1173.  CALL mkRef('ViewPix-JPG','','GETREF')
  1174.  CALL mkRef('ViewPix-BMP','','GETREF')
  1175.  CALL mkRef('ViewPix-GIF','','GETREF')
  1176.  CALL mkRef('ViewPix-PCX','','GETREF')
  1177.  CALL mkRef('ViewPix-PNG','','GETREF')
  1178.  CALL mkRef('ViewPix-std','','GETREF')
  1179.  CALL mkRef('ViewPix-PNG','','GETREF')
  1180. END
  1181.  
  1182. ViewVT=FindProg('VT','ViewTek')
  1183. IF ~(ViewVT='') THEN
  1184. DO
  1185.  CALL mkRef('ViewPix-PIC',ViewVT)
  1186.  CALL mkRef('ViewPix-PIC-Opts','>NIL: DF')
  1187.  CALL mkRef('ViewPix-VT',ViewVT)
  1188.  CALL mkRef('ViewPix-VT-Opts','>NIL: DF')
  1189. END
  1190. ELSE
  1191. DO
  1192.  CALL mkRef('ViewPix-PIC','','GETREF')
  1193.  CALL mkRef('ViewPix-VT','','GETREF')
  1194. END
  1195.  
  1196. MaVI=FindProg('Mavi','MoviePlayer')
  1197. IF ~(MaVI='') THEN
  1198. DO
  1199.  CALL mkRef('Video-QT','EASys!_bin:WBrun "'MaVI'"')
  1200.  CALL mkRef('Video-MOV','EASys!_bin:WBrun "'MaVI'"')
  1201. END
  1202. ELSE
  1203. DO
  1204.  CALL mkRef('Video-QT','','GETREF')
  1205.  CALL mkRef('Video-MOV','','GETREF')
  1206. END
  1207.  
  1208. CyberQT=FindProg('CyberQT','CyberQT')
  1209. IF ~(CyberQT='') THEN
  1210. DO
  1211.  CALL mkRef('Video-QT',CyberQT' FILES')
  1212.  CALL mkRef('Video-MOV',CyberQT' FILES')
  1213. END
  1214. ELSE
  1215. DO
  1216.  CALL mkRef('Video-QT','','GETREF')
  1217.  CALL mkRef('Video-MOV','','GETREF')
  1218. END
  1219.  
  1220. CyberAVI=FindProg('CyberAVI','CyberAVI')
  1221. IF ~(CyberAVI='') THEN
  1222. DO
  1223.  CALL mkRef('Video-AVI',CyberAVI)
  1224.  CALL mkRef('Video-AVI-Opts','BUFFERSIZE=100 FILES')
  1225. END
  1226. ELSE
  1227.  CALL mkRef('Video-AVI','','GETREF')
  1228.  
  1229. VideoMPG=FindProg('Osiris','Isis')
  1230. IF ~(VideoMPG='') THEN
  1231.  CALL mkRef('Video-MPG',VideoMPG)
  1232. ELSE
  1233.  CALL mkRef('Video-MPG','','GETREF')
  1234.  
  1235.  
  1236. PhotoAlbum=FindProg('PhotoAlbum','PhotoAlbum')
  1237. IF ~(PhotoAlbum='') THEN
  1238. DO
  1239.  CALL mkRef('Gfx-PictureBrowser','EASys!_bin:WBrun "'PhotoAlbum'"')
  1240.  CALL mkRef('Gfx-PictureAlbum','EASys!_bin:WBrun "'PhotoAlbum'"')
  1241. END
  1242. ELSE
  1243. DO
  1244.  CALL mkRef('Gfx-PictureBrowser','','GETREF')
  1245.  CALL mkRef('Gfx-PictureAlbum','','GETREF')
  1246. END
  1247.  
  1248. IF Assigned('Pic_Manager:') THEN
  1249. DO
  1250.  CALL mkRef('Gfx-PictureAlbum','EASys!_bin:WBrun PIC_Manager:PMPro')
  1251.  CALL mkRef('Gfx-PictureAlbum','EASys!_bin:WBrun PIC_Manager:PMPro')
  1252.  CALL mkRef('Gfx-ImageWorks','EASys!_bin:WBrun PIC_Manager:PMPro')
  1253.  CALL mkRef('Gfx-ImageWorks-Prg','PIC_Manager:PMPro')
  1254. END
  1255. ELSE
  1256. DO
  1257.  CALL mkRef('Gfx-PictureAlbum','','GETREF')
  1258.  CALL mkRef('Gfx-PictureAlbum','','GETREF')
  1259.  CALL mkRef('Gfx-ImageWorks','','GETREF')
  1260.  CALL mkRef('Gfx-ImageWorks-Prg','','GETREF')
  1261. END
  1262.  
  1263. IF Assigned('IE:') THEN
  1264. DO
  1265.  CALL mkRef('Gfx-ImageWorks','EASys!_bin:WBrun IE:IE')
  1266.  CALL mkRef('Gfx-ImageWorks-Prg','IE:IE')
  1267. END
  1268. ELSE
  1269. DO
  1270.  CALL mkRef('Gfx-ImageWorks','','GETREF')
  1271.  CALL mkRef('Gfx-ImageWorks-Prg','','GETREF')
  1272. END
  1273.  
  1274. IF Assigned('ArtEffect:') THEN
  1275. DO
  1276.  CALL mkRef('Gfx-ArtEffect','EASys!_bin:WBrun ArtEffect:ArtEffect')
  1277.  CALL mkRef('Gfx-ImageWorks','EASys!_bin:WBrun ArtEffect:ArtEffect')
  1278.  CALL mkRef('Gfx-ImageWorks-Prg','ArtEffect:ArtEffect')
  1279. END
  1280. ELSE
  1281. DO
  1282.  CALL mkRef('Gfx-ArtEffect','','GETREF')
  1283.  CALL mkRef('Gfx-ImageWorks','','GETREF')
  1284.  CALL mkRef('Gfx-ImageWorks-Prg','','GETREF')
  1285. END
  1286.  
  1287. IF Assigned('PhotoGenics:') THEN
  1288. DO
  1289.  CALL mkRef('Gfx-ImageWorks','EASys!_bin:WBrun PhotoGenics:PhotoGenics')
  1290.  CALL mkRef('Gfx-ImageWorks-Prg','PhotoGenics:PhotoGenics')
  1291. END
  1292. ELSE
  1293. DO
  1294.  CALL mkRef('Gfx-ImageWorks','','GETREF')
  1295.  CALL mkRef('Gfx-ImageWorks-Prg','','GETREF')
  1296. END
  1297.  
  1298. Scan=FindProg('ScanQuix','ScanQuix5')
  1299. IF Scan='' THEN Scan=FindProg('fxScan','fxScan')
  1300. IF ~(Scan='') THEN CALL mkRef('Gfx-Scanner','EASys!_bin:WBrun "'Scan'"')
  1301. ELSE CALL mkRef('Gfx-Scanner','','GETREF')
  1302.  
  1303.  
  1304. CDplayer=FindProg('PlayCD','PlayCD')
  1305. IF CDplayer='' THEN CDplayer=FindProg('GroovyCDplayer','GroovyPlayer')
  1306. IF ~(CDplayer='') THEN CALL mkRef('Sound-CDPlayer','EASys!_bin:WBrun "'CDplayer'"')
  1307. ELSE CALL mkRef('Sound-CDPlayer','','GETREF')
  1308.  
  1309. SoundDigi=FindProg('PSound_3.2','PSound')
  1310. IF SoundDigi='' THEN SoundDigi=FindProg('Samplitude','Samplitude')
  1311. IF ~(SoundDigi='') THEN CALL mkRef('Sound-Digitizer','EASys!_bin:WBrun "'SoundDigi'"')
  1312. ELSE CALL mkRef('Sound-Digitizer','','GETREF')
  1313.  
  1314.  
  1315. TheEd=''
  1316. SELECT
  1317.  WHEN Assigned('GoldEd:') THEN TheEd='GoldEd:Ed'
  1318.  WHEN EXISTS('c:ed') & EXISTS('c:GED') THEN TheEd='c:ed'
  1319.  WHEN EXISTS('c:ed') & EXISTS('c:CEd') THEN TheEd='c:ed'
  1320.  OTHERWISE NOP
  1321. END
  1322.  
  1323. IF ~(TheEd='') THEN
  1324.   StickyEd=TheEd' -STICKY'
  1325. ELSE
  1326. DO
  1327.  IF wb_port=1 THEN TheEd='SYS:Tools/EditPad'
  1328.  ELSE TheEd='c:ed'
  1329.  
  1330.  StickyEd=TheEd
  1331. END
  1332.  
  1333. CALL mkRef('Text-Editor',TheEd)
  1334. CALL mkRef('Text-Editor-Sync',StickyEd)
  1335.  
  1336.  
  1337. /* Reset Internet references. Will be set later within calling EASys!:Prefs/Internet_Prefs */
  1338. CALL mkRef('Net-Mail','','GETREF')
  1339. CALL mkRef('Net-TCPIP','','GETREF')
  1340. CALL mkRef('Net-Browser','','GETREF')
  1341. CALL mkRef('Net-Telnet','','GETREF')
  1342. CALL mkRef('Net-FTP','','GETREF')
  1343. CALL mkRef('Net-News','','GETREF')
  1344. CALL mkRef('Net-IRC','','GETREF')
  1345. CALL mkRef('Net-PGP','','GETREF')
  1346.  
  1347.  
  1348. Mounter=FindProg('UnitControl','UnitControl2')
  1349. IF Mounter='' THEN Mounter=FindProg('Mounter','Mounter')
  1350. IF Mounter='' THEN Mounter=FindProg('SCSImounter','SCSImount')
  1351. IF ~(Mounter='') THEN 
  1352.  CALL mkRef('Disk-SCSI-mounter','EASys!_bin:WBrun "'Mounter'"')
  1353. ELSE
  1354.  CALL mkRef('Disk-SCSI-mounter','','GETREF')
  1355.  
  1356.  
  1357. IF Assigned('TurboPrint:') THEN
  1358. DO
  1359.  GfxP1='TurboPrint:GrafikPublisher'
  1360.  GfxP2='TurboPrint:PicturePublisher'
  1361.  GfxP3='TurboPrint:GraphicsPublisher'
  1362.  GfxP4='TurboPrint:GraphicPublisher'
  1363.  IF EXISTS(GfxP1) THEN GfxP=GfxP1
  1364.  IF EXISTS(GfxP2) THEN GfxP=GfxP2
  1365.  IF EXISTS(GfxP3) THEN GfxP=GfxP3
  1366.  IF EXISTS(GfxP4) THEN GfxP=GfxP4
  1367.  
  1368.  CALL mkRef('Gfx-Gfx-Publisher','EASys!_bin:WBrun "'GfxP'"')
  1369.  CALL mkRef('Prefs-TurboPrint','EASys!_bin:WBrun EASys!_bin:WBrun TurboPrint:TurboPrefs')
  1370. END
  1371. ELSE
  1372. DO
  1373.  CALL mkRef('Gfx-Gfx-Publisher','','GETREF')
  1374.  CALL mkRef('Prefs-TurboPrint','','GETREF')
  1375. END
  1376.  
  1377. SELECT
  1378.  WHEN Assigned('DPaint:') THEN PaintBitmap='DPaint:DPaint'
  1379.  WHEN Assigned('DPaint5:') THEN PaintBitmap='DPaint5:DPaint'
  1380.  WHEN Assigned('DPaint_5:') THEN PaintBitmap='DPaint_5:DPaint'
  1381.  WHEN Assigned('DPaintV:') THEN PaintBitmap='DPaintV:DPaint'
  1382.  WHEN Assigned('DPaint_V:') THEN PaintBitmap='DPaint_V:DPaint'
  1383.  WHEN Assigned('DPaint4:') THEN PaintBitmap='DPaint4:DPaint'
  1384.  WHEN Assigned('DPaint4:') THEN PaintBitmap='DPaint_4:DPaint'
  1385.  WHEN Assigned('DPaintIV:') THEN PaintBitmap='DPaintIV:DPaint'
  1386.  WHEN Assigned('DPaint_IV:') THEN PaintBitmap='DPaint_IV:DPaint'
  1387.  WHEN Assigned('DPaint3:') THEN PaintBitmap='DPaint3:DPaint'
  1388.  WHEN Assigned('DPaint3:') THEN PaintBitmap='DPaint_3:DPaint'
  1389.  WHEN Assigned('DPaintIII:') THEN PaintBitmap='DPaintIII:DPaint'
  1390.  WHEN Assigned('DPaint_III:') THEN PaintBitmap='DPaint_III:DPaint'
  1391.  OTHERWISE PaintBitmap=''
  1392. END
  1393.  
  1394. IF Assigned('PPaint:') THEN
  1395. DO
  1396.  PaintBitmap='PPaint:PPaint'
  1397.  CALL mkRef('Gfx-Paint-Bitmap','rx EASys!_rexx:Paint.rexx')
  1398.  CALL mkRef('Gfx-Paint-Bitmap-Prog',PaintBitmap)
  1399.  CALL mkRef('Gfx-Paint-Bitmap-RX-Front','ScreenToFront')
  1400.  CALL mkRef('Gfx-Paint-Bitmap-RX-Load','LoadBrush FILE')
  1401.  CALL mkRef('Gfx-Paint-Bitmap-RX-Port','PPAINT')
  1402. END
  1403. ELSE
  1404. IF ~(PaintBitmap='') THEN
  1405. DO
  1406.  CALL mkRef('Gfx-Paint-Bitmap','rx EASys!_rexx:Paint.rexx')
  1407.  CALL mkRef('Gfx-Paint-Bitmap-Prog',PaintBitmap)
  1408.  CALL mkRef('Gfx-Paint-Bitmap-RX-Front',' ')
  1409.  CALL mkRef('Gfx-Paint-Bitmap-RX-Load',' ')
  1410.  CALL mkRef('Gfx-Paint-Bitmap-RX-Port','DPAINT')
  1411. END
  1412.  
  1413. IF PaintBitmap='' THEN
  1414. DO
  1415.  CALL mkRef('Gfx-Paint-Bitmap','','GETREF')
  1416.  CALL mkRef('Gfx-Paint-Bitmap-Prog','','GETREF')
  1417. END
  1418.  
  1419. Calc=FindProg('ARcalc','Calc')
  1420. IF Calc='' THEN Calc=FindProg('Calc3.0','Calc')
  1421. IF Calc='' THEN Calc=FindProg('Calc','Calculator')
  1422. IF ~(Calc='') THEN
  1423.  CALL mkRef('Office-Calculator','EASys!_bin:WBrun "'Calc'"')
  1424. ELSE
  1425.  CALL mkRef('Office-Calculator','','GETREF')
  1426.  
  1427. Organizer=FindProg('Organizer','Organiser')
  1428. IF Organizer='' THEN
  1429. DO
  1430.  CALL mkRef('Office-Organizer','','GETREF')
  1431.  CALL mkRef('Office-PhoneBook','','GETREF')
  1432.  CALL mkRef('Office-Adress-DB','','GETREF')
  1433. END
  1434. ELSE
  1435. DO
  1436.  CALL mkRef('Office-Organizer','EASys!_bin:WBrun "'Organizer'"')
  1437.  CALL mkRef('Office-PhoneBook','EASys!_bin:WBrun "'Organizer'"')
  1438.  CALL mkRef('Office-Adress-DB','EASys!_bin:WBrun "'Organizer'"')
  1439. END
  1440.  
  1441. IF Assigned('CManager:') THEN
  1442. DO
  1443.  CALL mkRef('Office-PhoneBook','EASys!_bin:WBrun CManager:CManager')
  1444.  CALL mkRef('Office-Adress-DB','EASys!_bin:WBrun CManager:CManager')
  1445. END
  1446. ELSE
  1447. DO
  1448.  CALL mkRef('Office-PhoneBook','','GETREF')
  1449.  CALL mkRef('Office-Adress-DB','','GETREF')
  1450. END
  1451.  
  1452. IF Assigned('AmiAtlas:') THEN 
  1453.  CALL mkRef('Office-RoutePlaner','EASys!_bin:WBrun AmiAtlas:AmiAtlas')
  1454. ELSE
  1455.  CALL mkRef('Office-RoutePlaner','','GETREF')
  1456.  
  1457. IF Assigned('MaxonAtlas:') THEN 
  1458.  CALL mkRef('Office-RoutePlaner','EASys!_bin:WBrun MaxonAtlas:MaxonAtlas')
  1459. ELSE
  1460.  CALL mkRef('Office-RoutePlaner','','GETREF')
  1461.  
  1462. IF Assigned('MultiFax:') THEN
  1463. DO
  1464.  CALL mkRef('Office-Fax','EASys!_bin:WBrun MultiFax:Desk')
  1465.  CALL mkRef('Office-FaxConfig','EASys!_bin:WBrun MultiFax:Config')
  1466.  CALL mkRef('Office-FaxView','EASys!_bin:WBrun MultiFax:View')
  1467. END
  1468. ELSE
  1469. DO
  1470.  CALL mkRef('Office-Fax','','GETREF')
  1471.  CALL mkRef('Office-FaxConfig','','GETREF')
  1472.  CALL mkRef('Office-FaxView','','GETREF')
  1473. END
  1474.  
  1475. AmigaWriter=FindProg('AmigaWriter','AmigaWriter')
  1476. IF ~(AmigaWriter='') THEN
  1477. DO
  1478.  CALL mkRef('Office-AmigaWriter','EASys!_bin:WBrun "'AmigaWriter'"')
  1479.  CALL mkRef('Office-WordProcessor','EASys!_bin:WBrun "'AmigaWriter'"')
  1480. END
  1481. ELSE
  1482.  CALL mkRef('Office-AmigaWriter','','GETREF')
  1483.  
  1484. WWorth=FindProg('WordWorth','WordWorth6')
  1485. IF WWorth='' THEN WWorth=FindProg('WordWorth','WordWorth7')
  1486. IF ~(WWorth='') THEN
  1487. DO
  1488.  CALL mkRef('Office-WordWorth','EASys!_bin:WBrun "'WWorth'"')
  1489.  CALL mkRef('Office-WordProcessor','EASys!_bin:WBrun "'WWorth'"')
  1490. END
  1491. ELSE
  1492.  CALL mkRef('Office-WordWorth','','GETREF')
  1493.  
  1494. FinalW=FindProg('FinalWriter_D','FinalWriter')
  1495. IF ~(FinalW='') THEN
  1496. DO
  1497.  CALL mkRef('Office-FinalWriter','EASys!_bin:WBrun "'FinalW'"')
  1498.  CALL mkRef('Office-WordProcessor','EASys!_bin:WBrun "'FinalW'"')
  1499. END
  1500. ELSE
  1501.  CALL mkRef('Office-FinalWriter','','GETREF')
  1502.  
  1503. SpreadSh=FindProg('TurboCalc','TurboCalc')
  1504. IF SpreadSh='' THEN SpreadSh=FindProg('MaxiPlan','MaxiPlan')
  1505. IF SpreadSh='' THEN SpreadSh=FindProg('StarAmPlan','StarAmPlan')
  1506. IF ~(SpreadSh='') THEN 
  1507.  CALL mkRef('Office-SpreadSheet','EASys!_bin:WBrun "'SpreadSh'"')
  1508. ELSE 
  1509.  CALL mkRef('Office-SpreadSheet','','GETREF')
  1510.  
  1511. ADDRESS COMMAND 'rx EASys!:SysDatabase/ReferencePrefs.rexx GUI-ScreenMode'
  1512.  
  1513. SM=MyGetENV('RefTable/GUI-ScreenMode')
  1514.  
  1515. IF ~(CyberShow='') THEN
  1516. DO
  1517.  opts='AF IE PF SlideShow EFFECTS ScreenMode "'SM'"'
  1518.  CALL mkRef('ViewPix-CyberShow',CyberShow)
  1519.  CALL mkRef('ViewPix-CyberShow-Opts',opts)
  1520. END
  1521.  
  1522. IF ~(FastView='') THEN Opts='SM="'LEFT(SM,4)'" SCALE FILES'
  1523. IF ~(Visage='') THEN Opts=' '
  1524. IF ~(CyberShow='') THEN Opts='AS FS IE PF SM="'SM'" BLACK'
  1525. IF ViewPix='SYS:Utilities/MultiView' THEN Opts=' '
  1526. IF ~(ViewPix='') THEN
  1527. DO
  1528.  CALL mkRef('ViewPix-JPG-Opts',Opts)
  1529.  CALL mkRef('ViewPix-BMP-Opts',Opts)
  1530.  CALL mkRef('ViewPix-GIF-Opts',Opts)
  1531.  CALL mkRef('ViewPix-PCX-Opts',Opts)
  1532.  CALL mkRef('ViewPix-PNG-Opts',Opts)
  1533.  CALL mkRef('ViewPix-std-Opts',Opts)
  1534. END
  1535.  
  1536. CALL CloseCon
  1537. CALL SpaceNextEntry
  1538. RETURN
  1539. /* ------------------------- */
  1540. Prefs:
  1541. r=ShowMessage('ReqPrefs',,,,AppName)
  1542. ADDRESS COMMAND '${RefTable/Prefs-EASys!-Req}'
  1543.  
  1544. InstName=' IDer Prefs '
  1545. Action=ShowMessage('IDer',,,,AppName)
  1546. RETURN
  1547. /* ------------------------- */
  1548. BU_Manager:
  1549. InstName=' BackupManager '
  1550. r=ShowMessage('EASys!_BackupMan_unpack')
  1551. IF r=1 THEN CALL UnpackArchive(StarterDir'BU_Manager.lha','SYS:EASys!/')
  1552. RETURN
  1553. /* ------------------------- */
  1554. Help:
  1555. InstName=' EASys!_Help '
  1556. Action=ShowMessage('ManualServerInfo',,,,AppName)
  1557. Action=ShowMessage('Manuals',,,,AppName)
  1558. IF (Action=1) THEN CALL UnpackArchive(StarterDir'EASys!_Help.lha','SYS:')
  1559.  
  1560. RETURN
  1561. /* ------------------------ */
  1562. CreateTrash:
  1563. InstName=' EASys! Trash '
  1564.  
  1565. IF CheckCdity('GlobalTrash') | EXISTS('SYS:.backdrop'TimeStamp) THEN RETURN
  1566.  
  1567. IF ~EXISTS('SYS:Trashcan') THEN
  1568. DO
  1569.  CMD.1='makedir >NIL: SYS:Trashcan'
  1570.  CMD.2='copy EASys!:icons/def_trashcan.info SYS:Trashcan.info CLONE QUIET'
  1571.  CALL Do_and_Log
  1572. END
  1573.  
  1574. IF EXISTS('SYS:.backdrop') THEN
  1575. DO
  1576.  IF ~EXISTS('SYS:.backdrop'TimeStamp) THEN
  1577.     CMD.1='copy SYS:.backdrop SYS:.backdrop'TimeStamp' CLONE QUIET'
  1578.  ELSE
  1579.     CMD.1='echo >NIL: "dummy"'
  1580.     
  1581.  ADDRESS COMMAND 'search >ENV:SearchResult from SYS:.backdrop :Trashcan'
  1582.  r=UPPER(MyGetENV('SearchResult'))
  1583.  ADDRESS COMMAND 'delete >NIL: ENV:SearchResult QUIET'
  1584.  
  1585.  IF POS(':TRASHCAN',r)=0 THEN 
  1586.     CMD.2='echo >>SYS:.backdrop ":Trashcan"'
  1587.  ELSE
  1588.     CMD.2=''
  1589.  
  1590.  CALL Do_and_Log
  1591. END
  1592. RETURN
  1593.  
  1594. /* ------------------------------------------------------- */
  1595. WBmenu:
  1596. InstName=' WB menu enhancements '
  1597. CALL Msg_Con_Log('HHH Installing: EASys! Menu enhancements (ToolsDaemon)...')
  1598.  
  1599. WB_used=ShowMessage('WB_or_Magellan',,,,AppName)
  1600.  
  1601. IF modas_user=1 THEN
  1602.  Module='SYS:StartSys/e_WB/2_MenuShortcuts'
  1603. ELSE
  1604.  Module='S:Startup-EASys!_InitMenu'
  1605.  
  1606. CALL removeCdity('RekeyIt',' !! Incompatible with OS3.5, replaced by PatchMenu in new Version.')
  1607. CALL removeCdity('SYS:Prefs/MenuPrefs',' !! Incompatible with OS3.5, replaced by SYS:EASys!/config/PatchMenu.dat')
  1608. CALL RemoveResources('RekeyIt')
  1609. CALL RemoveResources('MenuPrefs')
  1610.  
  1611. CALL removeCdity('ToolsDaemon','New place: EASys!:bin/ .. Startup within "'Module'" (called by s:Startup-Sequence)')
  1612. CALL removeCdity('PatchMenu','New place: EASys!:bin/.. Startup within "'Module'" (called by s:Startup-Sequence)')
  1613.  
  1614. IF EXISTS('S:ToolsDaemon.menu') THEN
  1615. DO
  1616.  ADDRESS COMMAND 'copy S:ToolsDaemon.menu S:ToolsDaemon.menu'TimeStamp' CLONE QUIET'
  1617.  
  1618.  r=wdi('echo "*e[1m Reactivating ToolsDaemon config ...*e[0m*n"')
  1619.  r=wdi('wait 3')
  1620.  r=wdi('copy S:ToolsDaemon.menu'TimeStamp' S:ToolsDaemon.menu CLONE QUIET')
  1621.  r=wdi('delete >NIL: S:ToolsDaemon.menu'TimeStamp' FORCE')
  1622. END
  1623.  
  1624. r=QuitCdity('ReKeyIt','>>>ReKeyIt')
  1625.  
  1626. ADDRESS COMMAND
  1627. 'Install_C:CLIexchange MultiNotify DISABLE'
  1628. 'Install_C:CLIexchange MCP DISABLE'
  1629. 'Install_C:CLIexchange MCP020 DISABLE'
  1630. 'Install_C:CLIexchange PatchMenu KILL'
  1631. 'Install_C:CLIexchange MagicMenu KILL'
  1632. 'Install_C:CLIexchange NewIcons DISABLE'
  1633.  
  1634. IF wb_used=0 THEN
  1635. DO
  1636.  /* Magellan users must add their menus on their own */
  1637.  CALL ShowMessage('Magellan_used',,,,AppName)
  1638. END
  1639. ELSE
  1640. DO
  1641.  /* Workbench and SCALOS users may use ToolsDaemon */
  1642.  
  1643.  IF wb_port=1 THEN
  1644.   config='PatchMenu.dat'
  1645.  ELSE
  1646.   config='PatchMenu_OS31.dat'
  1647.  
  1648.  IF EXISTS('EASys!:Config/'Language'/'config) THEN
  1649.   langua=Language
  1650.  ELSE
  1651.   langua='english'
  1652.  
  1653.  ADDRESS COMMAND
  1654.  'copy EASys!:Config/'langua'/'config' EASys!:Config CLONE QUIET'
  1655.  WBrun' EASys!:bin/PatchMenu'
  1656.  CALL DELAY(50)
  1657.  
  1658.  IF EXISTS('EASys!:Config/'Language'/'ToolsDaemon.menu) THEN
  1659.   langua=Language
  1660.  ELSE
  1661.   langua='english'
  1662.  
  1663.  ADDRESS COMMAND
  1664.  WBrun' EASys!:Config/'langua'/ToolsDaemon.menu'
  1665.  'copy EASys!:Config/'langua'/ToolsDaemon.menu S: CLONE QUIET'
  1666.  
  1667.  CALL DELAY(50)
  1668. END
  1669.  
  1670. install_MM=ShowMessage('install_MagicMenu',,,,AppName)
  1671. IF install_MM=1 THEN
  1672. DO
  1673.  CALL removeCdity('MagicMenu','New place: EASys!:bin/ .. Startup within "'Module'" (called by s:Startup-Sequence)')
  1674.  
  1675.  ADDRESS COMMAND WBrun' EASys!:bin/MagicMenu'
  1676. END
  1677. ELSE
  1678. DO
  1679.  IF (user_ver=0 | user_ver<4.8) THEN ADDRESS COMMAND 'Install_C:replacestrings 'module' "wbrun EASys!_bin:MagicMenu" ";wbrun EASys!_bin:MagicMenu" I'
  1680.  
  1681.  IF EXISTS('ENVARC:MagicMenu.prefs'TimeStamp) THEN
  1682.  DO
  1683.    ADDRESS COMMAND
  1684.    'delete >NIL: ENVARC:MagicMenu.prefs FORCE QUIET'
  1685.    'rename ENVARC:MagicMenu.prefs'TimeStamp' ENVARC:MagicMenu.prefs'
  1686.    'delete >NIL: ENV:MagicMenu.prefs FORCE QUIET'
  1687.    'rename ENV:MagicMenu.prefs'TimeStamp' ENV:MagicMenu.prefs'
  1688.  END
  1689. END
  1690.  
  1691. IF ModAS_user=0 THEN
  1692. DO
  1693.  /* remove old entries for this in startup-sequence, then reconstruct the new startup for the modules */
  1694.  
  1695.  CMD.1='rx T:remoteed.rexx movetext s:Startup-Sequence "run >NIL: execute 'Module'" "1LiNe" T:Trash'
  1696.  CMD.2=rEdit'movetext s:Startup-Sequence ";BEGIN _MenuShortcuts" ";END _MenuShortcuts" T:Trash'
  1697.  CMD.3=rEdit'movetext s:Startup-Sequence ";BEGIN _PubScreens" ";END _PubScreens" T:Trash'
  1698.  
  1699.  CMD.4='echo >'Module' ";initialize EASys! Post Startup-Sequence modules. Must be started some seconds after Startup-Sequence."'
  1700.  CMD.5='echo >>'Module' "wait 3"'
  1701.  CMD.6='type >>'Module' T:2_MenuShortcuts'
  1702.  CMD.7='echo >>'Module' ";activate Public Screens activation for EASys!"'
  1703.  CMD.8='type >>'Module' T:7_PubScreens'
  1704.  
  1705.  CMD.9=rEdit'movetext s:startup-sequence "EndCLI" "§§##" T:Trash'
  1706.  
  1707.  CMD.10='echo >>S:Startup-Sequence "run >NIL: execute 'Module'*n"'
  1708.  CMD.11='echo >>S:Startup-Sequence "EndCLI >NIL:"'
  1709.  CALL Do_and_Log
  1710.  
  1711.  r=wdi('rx T:remoteed.rexx movetext s:Startup-Sequence "run >NIL: execute 'Module'" "1LiNe" T:Trash')
  1712.  r=wdi('delete >NIL: 'Module' FORCE QUIET')
  1713. END
  1714.  
  1715. IF wb_used=0 & (user_ver=0 | user_ver<4.8) THEN ADDRESS COMMAND 'Install_C:replacestrings 'module' "rx EASys!:Prefs/WB_Menu_Restart.rexx ALL" ";rx EASys!:Prefs/WB_Menu_Restart.rexx ALL" I'
  1716.  
  1717. IF ~(wb_port=1) THEN
  1718. DO
  1719.  ADDRESS COMMAND
  1720.  'Install_C:CLIexchange NewIcons ENABLE'
  1721.  'delete >NIL: ENV:'??_info' FORCE QUIET'
  1722. END
  1723.  
  1724. r=ShowMessage('NewMenu',,,,AppName)
  1725.  
  1726. ADDRESS COMMAND
  1727. 'Install_C:CLIexchange MCP ENABLE'
  1728. 'Install_C:CLIexchange MCP020 ENABLE'
  1729. 'Install_C:CLIexchange MultiNotify ENABLE'
  1730.  
  1731. CALL CloseCon
  1732. CALL SpaceNextEntry
  1733. RETURN
  1734.  
  1735. /* ------------------------------------------------------- */
  1736. ToolManager:
  1737. PARSE ARG InstallQuick
  1738.  
  1739. InstName=' ToolManager '
  1740. CALL Msg_Con_Log('HHH Installing: EASys! Docks (ToolManager)...')
  1741.  
  1742. IF ~(InstallQuick='QUICK') THEN 
  1743. DO
  1744.  r=ShowMessage('Test_Dock',,,,AppName)
  1745.  
  1746.  IF EXISTS('ENV:ToolManager.prefs') THEN
  1747.  DO
  1748.   ADDRESS COMMAND
  1749.   'protect ENVARC:ToolManager.prefs +wd'
  1750.   'protect ENV:ToolManager.prefs +wd'
  1751.   'copy ENV:ToolManager.prefs ENV:ToolManager.$TimeStamp CLONE QUIET'
  1752.   'copy ENVARC:ToolManager.prefs ENVARC:ToolManager.$TimeStamp CLONE QUIET'
  1753.  END
  1754. END
  1755.  
  1756. TM_Cmd=WBrun' "iGuide_root:EASys!_TM/EASys!/bin/ToolManager"'
  1757. TM_wasActive=QuitCdity('ToolManager')
  1758.  
  1759. CALL UnpackArchive(StarterDir'EASys!_TM.lha','iGuide_root:')
  1760.  
  1761. IF user_ver<Update_EndVer & update>0 THEN
  1762. DO
  1763.  IF EXISTS('iGuide:update/EASys!/Config/ToolManager.prefs') THEN
  1764.   ADDRESS COMMAND 'copy iGuide:update/EASys!/Config/ToolManager.prefs#? EASys!:Config CLONE QUIET'
  1765. END
  1766.  
  1767. ADDRESS COMMAND 'copy "EASys!:Config/ToolManager.prefs" ENV:ToolManager.prefs CLONE QUIET'
  1768.  
  1769. IF ~(InstallQuick='QUICK') THEN
  1770. DO
  1771.   ADDRESS COMMAND
  1772.   'assign DOCK: "iGuide_root:EASys!_TM/EASys!/Dock" ADD'
  1773.   'assign libs: "iGuide_root:EASys!_TM/libs" ADD'
  1774.   'assign Locale: "iGuide_root:EASys!_TM/Locale" ADD'
  1775.   TM_Cmd
  1776.   CALL DELAY(80)
  1777.  
  1778.   /* -------------- */
  1779.  
  1780.   r=ShowMessage('NewDock',,,,AppName)
  1781.   r=ShowMessage('InfoFileManager',,,,AppName)
  1782.   r=ShowMessage('InfoFileManager2',,,,AppName)
  1783.   r=ShowMessage('InfoFileManager3',,,,AppName)
  1784.   r=ShowMessage('InfoFileManager4',,,,AppName)
  1785.  
  1786.   Action=ShowMessage('Take_Dock',,,,AppName)
  1787.  
  1788.   ADDRESS COMMAND
  1789.   'assign DOCK: "iGuide_root:EASys!_TM/EASys!/Dock" REMOVE'
  1790.   'assign Libs: "iGuide_root:EASys!_TM/libs" REMOVE'
  1791.   'assign Locale: "iGuide_root:EASys!_TM/Locale" REMOVE'
  1792.  
  1793.   CALL QuitCdity('ToolManager')
  1794.  
  1795.   IF Action=0 THEN
  1796.   DO
  1797.     /* Remove Test-Installation, doesn't want it. */
  1798.     IF TM_wasActive=1 THEN
  1799.     DO
  1800.       ADDRESS COMMAND
  1801.       move' ENV:ToolManager.$TimeStamp' ENV:ToolManager.prefs CLONE QUIET'
  1802.       move' ENVARC:ToolManager.$TimeStamp' ENVARC:ToolManager.prefs CLONE QUIET'
  1803.       TM_Cmd
  1804.  
  1805.       CALL DELAY(100)
  1806.     END
  1807.  
  1808.     ADDRESS COMMAND 'run >NIL: delete "iGuide_root:EASys!_TM" FORCE ALL QUIET'
  1809.  
  1810.     CALL CloseCon
  1811.     CALL SpaceNextEntry
  1812.     RETURN
  1813.   END
  1814. END
  1815.  
  1816. /* Install for real */
  1817.  
  1818. CMD.1='protect >NIL: ENVARC:ToolManager.prefs +wd'
  1819. CMD.2='protect >NIL: ENV:ToolManager.prefs +wd'
  1820. CMD.3='makedir >NIL: EASys!:dock'
  1821. CMD.4='assign DOCK: EASys!:Dock'
  1822. CALL Do_and_Log
  1823.  
  1824. InstName=' ToolManager '
  1825. SourceDir='iGuide_root:EASys!_TM'
  1826. DestDir1='SYS:'
  1827. DoCheck=0
  1828. CALL CopyAction
  1829.  
  1830. IF (update>0 & InstallQuick='QUICK') | EXISTS('SYS:Prefs/dock') THEN
  1831. DO
  1832.  CMD.1=move' SYS:Prefs/dock EASys!: CLONE QUIET'
  1833.  CMD.2='delete >NIL: SYS:Prefs/dock FORCE ALL QUIET'
  1834.  CALL Do_and_Log
  1835. END
  1836.  
  1837. CMD.1='delete >NIL: ENVARC:ToolManager.prefs FORCE QUIET'
  1838. CMD.2=WBrun' SYS:EASys!/Config/ToolManager.prefs'
  1839. CALL Do_and_Log
  1840. CALL DELAY(80)
  1841.  
  1842.  
  1843. /* Users who don't want ModAS need enhancements done to s:User-Startup directly */
  1844.  
  1845. IF ~(InstallQuick='QUICK') & ModAS_user=0 THEN
  1846. DO
  1847.  Module=S:Startup-EASys!_InitMenu
  1848.  /* remove old entries for this in startup-sequence, then reconstruct the new startup for the modules */
  1849.  
  1850.  CMD.1=rEdit'movetext s:User-Startup "BEGIN ToolManager_EASys!" "END ToolManager_EASys!" T:Trash'
  1851.  CMD.2=rEdit'movetext s:User-Startup "BEGIN ToolManager_EASys!" "END ToolManager_EASys!" T:Trash'
  1852.  CMD.3='echo >>'Module' ";ToolManager startup"'
  1853.  CMD.4='type >>'Module' "iGuide_root:EASys!_TM/StartSys/e_WB/2_ToolManager_EASys!"'
  1854.  CALL Do_and_Log
  1855. END
  1856.  
  1857. IF ModAS_user=1 THEN
  1858.  CALL removeCdity('ToolManager','New place: EASys!:bin/ .. Startup within: SYS:StartSys/e_WB/2_ToolManager_EASys!')
  1859. ELSE
  1860.  CALL removeCdity('ToolManager','New place: EASys!:bin/ .. Startup within: 'Module' (called inside s:Startup-Sequence)')
  1861.  
  1862. r=wdi('echo "*e[1m Removing ToolManager_EASys! preconfiguration ...*e[0m*n"')
  1863. r=wdi('wait 3')
  1864. r=wdi('delete SYS:StartSys/e_WB/2_ToolManager_EASys! FORCE')
  1865. r=wdi('rx T:remoteed.rexx movetext s:User-Startup "BEGIN ToolManager_EASys!" "END ToolManager_EASys!" T:Trash')
  1866. CALL SpaceNextEntry
  1867.  
  1868. ADDRESS COMMAND 'run >NIL: delete "iGuide_root:EASys!_TM" FORCE ALL QUIET'
  1869.  
  1870. r=ShowMessage('NewDock_blindout',,,,AppName)
  1871.  
  1872. CALL DELAY(80)
  1873. CALL CloseCon
  1874. CALL SpaceNextEntry
  1875. RETURN
  1876.  
  1877. /* --------------- */
  1878. Dictionary:
  1879.  
  1880. InstName=' Dictionary '
  1881. Dir=UnpackRequest('Dictionary installer',CDname':'ContribDir'/Util/Dictionary_D_E.lha','Dictionary_DE')
  1882. IF ~(Dir=0) THEN 
  1883.  CALL mkRef('Office-Translator','WBrun "'Dir'Dictionary_D_E/Dictionary"')
  1884. ELSE
  1885.  CALL mkRef('Office-Translator','','GETREF')
  1886.  
  1887. CALL SpaceNextEntry
  1888. CALL CloseCon
  1889. RETURN
  1890.  
  1891. /* --------------- */
  1892. SayTime:
  1893.  
  1894. InstName=' SayTime '
  1895. Dir=UnpackRequest('Voice Time Messages',CDname':'ContribDir'/Util/SayTime.lha','SayTime')
  1896. IF ~(Dir=0) THEN
  1897. DO
  1898.  ADDRESS COMMAND
  1899.  'Install_C:ReplaceStrings "'Dir'Saytime/SageUhrzeit.rexx" "SYS:" "'Dir'"'
  1900.  'Install_C:ReplaceStrings "'Dir'Saytime/SageUhrzeit.rexx" "Media:Sound/SayTime/Klang" "'Dir'Saytime/Klang"'
  1901.  'Install_C:ReplaceStrings "'Dir'Saytime/SageUhrzeit.rexx" "Audio:bin/dsound" "AAA{RefTable/Sound-Voice}"'
  1902.  'Install_C:ReplaceStrings "'Dir'Saytime/SageUhrzeit.rexx" "AAA{" "${"'
  1903.  
  1904.  CALL mkRef('Info-SayTime','run >NIL: rx 'Dir'Saytime/SageUhrzeit.rexx')
  1905. END
  1906. ELSE
  1907.  CALL mkRef('Info-SayTime','','GETREF')
  1908.  
  1909. CALL SpaceNextEntry
  1910. CALL CloseCon
  1911. RETURN
  1912.  
  1913. /* --------------- */
  1914. MultiTracker:
  1915. InstName=' MultiTracker '
  1916.  
  1917. IF ~assigned('EaglePlayer2:') THEN
  1918. DO
  1919.  DeliTracker=FindProg('DeliTracker_II','DeliTracker2')
  1920.  IF DeliTracker='' THEN DeliTracker=FindProg('DeliTracker2','DeliTracker')
  1921.  
  1922.  IF ~(DeliTracker='') THEN
  1923.  DO
  1924.   IF POS('/',DeliTracker)>1 THEN
  1925.    DIR_Deli=LEFT(DeliTracker,LASTPOS('/',DeliTracker))
  1926.   ELSE
  1927.    DIR_Deli=LEFT(DeliTracker,LASTPOS(':',DeliTracker))
  1928.  
  1929.   CALL mkRef('Sound-MultiTracker',DeliTracker)
  1930.   CALL mkRef('Sound-MultiTracker-Opts','CONFIG 'DIR_Deli'DeliConfig/DeliTracker.config MODULE')
  1931.  END
  1932.  ELSE
  1933.   CALL mkRef('Sound-MultiTracker','','GETREF')
  1934.  
  1935.  
  1936.  r=ShowMessage('EaglePlayer',,,,AppName)
  1937.  IF r=0 THEN RETURN
  1938.  
  1939.  CALL UnpackArchive(CDname':'ContribDir'/Audio/EaglePlayer201.lha','iGuide:')
  1940.  
  1941.  CMD.1=wbrun' "iGuide:EaglePlayer2.01/Install,Update" SYNC'
  1942.  CALL Do_and_Log
  1943.  
  1944.  IF assigned('EaglePlayer2:') THEN
  1945.  DO
  1946.   LanguageArch=CDname':'ContribDir'/Audio/EP_'Language'.lha'
  1947.   IF EXISTS(LanguageArch) THEN
  1948.   DO
  1949.      CALL UnpackArchive(LanguageArch,'iGuide:EaglePlayer2.01')
  1950.  
  1951.      CMD.1=wbrun' "iGuide:EaglePlayer2.01/'Language'/install" SYNC'
  1952.      CALL Do_and_Log
  1953.   END
  1954.  
  1955.   CALL UnpackArchive(CDname':'ContribDir'/Audio/EaglePlayer_Configs.lha','EaglePlayer2:')
  1956.  END
  1957.  
  1958.  ADDRESS COMMAND 'delete >NIL: "iGuide:EaglePlayer2.01" FORCE ALL QUIET'
  1959. END
  1960.  
  1961. /* no ELSE here because it may have been installed above ! */
  1962.  
  1963. IF assigned('EaglePlayer2:') THEN
  1964. DO
  1965.  ADDRESS COMMAND
  1966.  'assign Eagle_tmp: EaglePlayer2:'
  1967.  'assign EaglePlayer2: REMOVE'
  1968.  
  1969.  EaglePlayer=FindProg('EaglePlayer2','EaglePlayer')
  1970.  
  1971.  ADDRESS COMMAND 'assign EaglePlayer2: Eagle_tmp:'
  1972.  
  1973.  CALL mkRef('Sound-MultiTracker','EaglePlayer2:EaglePlayer')
  1974.  CALL mkRef('Sound-MultiTracker-Opts','QUICKSTART=YES LOADMODULE')
  1975. END
  1976.  
  1977. CALL CloseCon
  1978. RETURN
  1979.  
  1980. /* --------------- */
  1981. SongPlayer:
  1982. InstName=' SongPlayer '
  1983.  
  1984. IF assigned('MUI:') THEN r=ShowMessage('SongPlayer',,,,AppName)
  1985. IF r=0 | ~assigned('MUI:') THEN
  1986. DO
  1987.  CALL SongPlayerRefs
  1988.  RETURN
  1989. END
  1990.  
  1991. CALL UnpackArchive(CDname':'ContribDir'/Audio/SongPlayer.lha','iGuide:')
  1992.  
  1993. CMD.1=WBrun' iGuide:SongPlayer/Install SYNC'
  1994. CALL Do_and_Log
  1995. CALL SongPlayerRefs
  1996.  
  1997. ADDRESS COMMAND 'delete >NIL: iGuide:SongPlayer FORCE ALL QUIET'
  1998.  
  1999. CALL CloseCon
  2000. RETURN
  2001.  
  2002. /* --------------- */
  2003. SongPlayerRefs:
  2004.  
  2005. SongPlayer=FindProg('SongPlayer','SongPlayer')
  2006.  
  2007. IF ~(SongPlayer='') THEN
  2008. DO
  2009.  starter='rx EASys!_bin:Sound-SongPlayer.rexx'
  2010.  CALL mkRef('Sound-GUI_SamplePlayer',SongPlayer' GUI NAME')
  2011.  CALL mkRef('Sound-8SVX',starter)
  2012.  CALL mkRef('Sound-AIFF',starter)
  2013.  CALL mkRef('Sound-AU',starter)
  2014.  CALL mkRef('Sound-MAUD',starter)
  2015.  CALL mkRef('Sound-MPEGA',starter)
  2016.  CALL mkRef('Sound-RAW',starter)
  2017.  CALL mkRef('Sound-VOC',starter)
  2018.  CALL mkRef('Sound-WAV',starter)
  2019.  
  2020.  IF RIGHT(SongPlayer,1)=':' THEN
  2021.   dir_SongPlayer=SongPlayer
  2022.  ELSE
  2023.   dir_SongPlayer=LEFT(SongPlayer,LASTPOS('/',SongPlayer))
  2024.  
  2025.  CALL UnpackArchive(CDname':'ContribDir'/Audio/SongPlayer_Configs.lha',dir_SongPlayer)
  2026.  
  2027.  ADDRESS COMMAND
  2028.  'copy "'dir_SongPlayer'ENV/#?" ENV: CLONE ALL QUIET'
  2029.  'copy "'dir_SongPlayer'ENV/#?" ENVARC: CLONE ALL QUIET'
  2030.  
  2031. END
  2032. ELSE
  2033.  CALL mkRef('Sound-GUI_SamplePlayer','','GETREF')
  2034.  
  2035. RETURN
  2036.  
  2037. /* --------------- */
  2038. MultiMediaBoot:
  2039. InstName=' MultiMediaBoot '
  2040. module='SYS:StartSys/b_GUI/5_MultiMediaBoot'
  2041.  
  2042. IF (User_ver >= 4.6.6 | ModAS_User=0) THEN RETURN
  2043.  
  2044. CALL Msg_Con_Log('HHH Adapting pathes: 'module' ...')
  2045.  
  2046. SELECT
  2047.  WHEN ~(EaglePlayer='') THEN ADDRESS COMMAND 'Install_C:ReplaceStrings 'module' ";run >NIL: SYS:Eagleplayer2/Eagleplayer" "run >NIL: 'EaglePlayer'"'
  2048.  
  2049.  OTHERWISE
  2050.  DO
  2051.   IF ~(DeliTracker='') THEN
  2052.   DO
  2053.    ADDRESS COMMAND
  2054.    'Install_C:ReplaceStrings SYS:StartSys/5_MultiMediaBoot "Work:DeliTracker" "'DIR_Deli'"'
  2055.    'Install_C:ReplaceStrings SYS:StartSys/5_MultiMediaBoot ";assign Deli" "assign Deli"'
  2056.    'Install_C:ReplaceStrings SYS:StartSys/5_MultiMediaBoot ";setenv Deli" "setenv Deli"'
  2057.    'Install_C:ReplaceStrings SYS:StartSys/5_MultiMediaBoot ";run >NIL: rx" "run >NIL: rx"'
  2058.   END
  2059.  END
  2060. END
  2061.  
  2062. SELECT
  2063.  WHEN ~(CyberShow='') THEN ADDRESS COMMAND 'Install_C:ReplaceStrings 'module' ";run >NIL: SYS:EASys!/bin/cybershow" "run >NIL: 'cybershow'"'
  2064.  WHEN ~(FastView='') THEN ADDRESS COMMAND 'Install_C:ReplaceStrings 'module' ";run >NIL: SYS:EASys!/bin/fastview" "run >NIL: 'fastview'"'
  2065.  OTHERWISE NOP
  2066. END
  2067.  
  2068. CALL CloseCon
  2069. RETURN
  2070.  
  2071. /* ------------ BEGIN Standard EASys! Installer --------------- */
  2072. Init:
  2073. OPTIONS RESULTS
  2074. OPTIONS FAILAT 21
  2075.  
  2076. AppName="©99 TNE) iGuide"
  2077.  
  2078. CR='0a'x
  2079.  
  2080. IF SHOW('P','WORKBENCH') THEN wb_port=1
  2081.  
  2082. CALL REMLIB('rexxsupport.library')
  2083. CALL ADDLIB('rexxsupport.library',80,-30,0)
  2084.  
  2085. CALL REMLIB('rexxreqtools.library')
  2086. CALL ADDLIB('rexxreqtools.library',50,-30,0)
  2087.  
  2088. ProcessNumber=PRAGMA('ID')
  2089.  
  2090. MaxTitleChars=66
  2091. ReqLE=120  /* Main Window */
  2092. ReqTE=81
  2093. ReqHeight=350
  2094.  
  2095. ConsoleType='CON:'
  2096. ConsoleSize='120/81/584/200'
  2097.  
  2098. PosTags="rt_reqpos=reqpos_topleftscr rt_leftoffset=" ReqLE " rt_topoffset=" ReqTE
  2099. EZtags=PosTags
  2100. GLtags=PosTags || "rtgl_min=0 rtgl_max=1500 rtgl_backfill=true "
  2101. GStags=PosTags || " rtgs_backfill=false rtgs_width=300"
  2102.  
  2103. POINTER_TAGS="rt_reqpos=reqpos_pointer"
  2104. DIR_TAGS=PosTags || " rtfi_flags=freqf_nofiles|freqf_save rtfi_height=" ReqHeight
  2105. FILE_TAGS=PosTags || " rtfi_flags=freqf_multiselect|freqf_selectdirs" || " rtfi_height=" ReqHeight
  2106. ONEFILE_TAG=PosTags || " rtfi_height=" ReqHeight
  2107.  
  2108. Console='>"'ConsoleType''ConsoleSize'/'AppName' .../AUTO/NOCLOSE"'
  2109. ConStat=0
  2110.  
  2111. /*---- specials -------------------*/
  2112.  
  2113. today=Date(n)
  2114. date=Date(s)
  2115. yy=LEFT(date,4)
  2116. mmdd=RIGHT(date,4)
  2117. mm=LEFT(mmdd,2)
  2118. dd=RIGHT(mmdd,2)
  2119.  
  2120. time=RIGHT(Time(n),8)
  2121. MinSec=Right(time,5)
  2122. Hrs=Left(time,2)
  2123. Mins=Left(MinSec,2)
  2124. Secs=Right(time,2)
  2125.  
  2126. time_hhmmss=Hrs''Mins''Secs
  2127. TimeStamp=date''Hrs''Mins
  2128. ADDRESS COMMAND 'echo >ENV:TimeStamp 'TimeStamp
  2129.  
  2130. /* ActionMessage reset */
  2131. aMsg=''
  2132. bMsg=''
  2133. cMsg=''
  2134. dMsg=''
  2135.  
  2136. CheckSourceFile='T:CS_FileList_'ProcessNumber
  2137. CheckSourceDirs='T:CS_DirsList_'ProcessNumber
  2138. TempPath='CS_Dest-path'ProcessNumber
  2139.  
  2140. IF ~assigned('Install_C:') THEN
  2141. DO
  2142.  say 'Startup MUST be initiated by the delivered Installer-Icon "Install_'InstBase'"'
  2143.  EXIT 0
  2144. END
  2145.  
  2146. /* ---- StartGuide: */
  2147.  
  2148. CALL GetLanguage
  2149. CALL PRAGMA('DIRECTORY','iGuide:')
  2150.  
  2151. IF EXISTS('ENV:Multiview') THEN
  2152. DO
  2153.  ADDRESS COMMAND
  2154.  'copy ENVARC:MultiView ENVARC:MultiView.'TimeStamp' CLONE ALL QUIET'
  2155.  'copy ENV:MultiView ENV:MultiView.'TimeStamp' CLONE ALL QUIET'
  2156. END
  2157.  
  2158. ADDRESS COMMAND
  2159. 'copy Inst_Guide/~(fonts) SYS: CLONE ALL QUIET'
  2160. 'copy Inst_Guide/Prefs/ENV-Archive ENV: CLONE ALL QUIET'
  2161.  
  2162. IF ~EXISTS('Fonts:Helvetica.font') THEN ADDRESS COMMAND 'copy Inst_Guide/Fonts SYS:Fonts CLONE ALL QUIET'
  2163.  
  2164. ViewPort='INST_'UPPER(InstBase)
  2165.  
  2166. StartPic=InstBase'.ILBM'
  2167. IF EXISTS('iGuide:'Language'/'StartPic) THEN StartPic='iGuide:'Language'/'StartPic
  2168. ELSE StartPic='iGuide:english/'StartPic
  2169.  
  2170. ADDRESS COMMAND 'run >NIL: Install_C:MultiView "'StartPic'" PORTNAME' ViewPort
  2171.  
  2172. DO i=1 to 8
  2173.  CALL DELAY(100)
  2174.  IF ~SHOW('P',ViewPort) THEN LEAVE
  2175. END
  2176.  
  2177. IF SHOW('P',ViewPort) THEN
  2178. DO
  2179.  ADDRESS VALUE ViewPort
  2180.  'QUIT'
  2181. END
  2182.  
  2183. StarterDir=MyGetENV(InstBase'_StarterDir')
  2184. IF ~(RIGHT(StarterDir,1)=':') & ~(RIGHT(StarterDir,1)='/') THEN StarterDir=StarterDir'/'
  2185.  
  2186. StartDoc='install.guide'
  2187. IF EXISTS(StarterDir''Language'/'StartDoc) THEN StartDoc=StarterDir''Language'/'StartDoc
  2188. ELSE StartDoc=StarterDir'english/'StartDoc
  2189.  
  2190. IF EXISTS(StartDoc) THEN
  2191. DO
  2192.  ADDRESS COMMAND 'run >NIL: Install_C:MultiView "'StartDoc'" PORTNAME 'ViewPort
  2193.  CALL DELAY(300)
  2194. END
  2195.  
  2196. CALL PRAGMA('DIRECTORY','iGuide:')
  2197.  
  2198. /* ---- other presets */
  2199.  
  2200. EditList='T:EASys!_Edit_Configs'
  2201.  
  2202. Additional_S=''
  2203. Additional_C=''
  2204. Additional_L=''
  2205. Additional_Libs=''
  2206. Additional_Devs=''
  2207. Additional_Fonts=''
  2208. Additional_Locale=''
  2209. Additional_Help=''
  2210.  
  2211. ItemNr=0
  2212. InstName=InstApp
  2213. InstAssign=''
  2214. InstDest2=''
  2215. DestDir2=''
  2216. AlternateDir=''
  2217. Recursive='ALL'
  2218. NoDeInstForDir=0
  2219. NoDeInstForFiles=0
  2220. PhaseA_exists=0
  2221.  
  2222. SWindow='Install_C:SWindow'
  2223. WBrun='Install_C:WBrun'
  2224. move='Install_C:Move'
  2225. redit='rx Install_C:Remoteed.rexx '
  2226.  
  2227. CALL setclip('Language',RealLanguage)
  2228. CALL setclip('StarterDir',StarterDir)
  2229. CALL setclip('TimeStamp',TimeStamp)
  2230.  
  2231. /* Get names of mounted devices: device.1 device.2 ... device.(device.count) */
  2232. CALL GetDevList
  2233. RETURN
  2234.  
  2235. /*----------------------FileOps-----*/
  2236. Assigned:
  2237. PARSE ARG File
  2238. ADDRESS COMMAND 'assign >NIL: "'File'" EXISTS'
  2239. IF RC=0 THEN RETURN 1
  2240. ELSE RETURN 0
  2241. /*----------------------------------*/
  2242. Delete:
  2243. PARSE ARG File,Opt,Check
  2244. IF Check='' & EXISTS(File) THEN
  2245.   ADDRESS COMMAND 'delete >NIL: "'File'" 'Opt' FORCE QUIET'
  2246. ELSE
  2247.   IF EXISTS(Check) THEN ADDRESS COMMAND 'delete >NIL: "'File'" 'Opt' FORCE QUIET'
  2248.  
  2249. RETURN
  2250. /*----------------------------------*/
  2251. Copy:
  2252. PARSE ARG From,To,Check
  2253. IF Check='' THEN
  2254.  ADDRESS COMMAND 'copy "'From'" "'To'" CLONE ALL QUIET'
  2255. ELSE
  2256.  IF EXISTS(Check) THEN ADDRESS COMMAND 'copy "'From'" "'To'" CLONE ALL QUIET'
  2257.  
  2258. RETURN
  2259. /*----------------------------------*/
  2260. Rename:
  2261. PARSE ARG File,To
  2262. IF EXISTS(File) THEN ADDRESS COMMAND 'rename "'File'" "'To'"'
  2263. RETURN
  2264. /*----------------------------------*/
  2265. IsDir:     PROCEDURE
  2266. PARSE ARG name
  2267.  
  2268. name=strip(name,'T','/')
  2269. returned=PRAGMA('DIRECTORY',name)
  2270.  
  2271. IF ~(returned="") THEN
  2272.    DirFlag=1
  2273. ELSE
  2274. DO
  2275.  IF ~Exists(name) THEN
  2276.    DirFlag=-1
  2277.  ELSE
  2278.    DirFlag=0
  2279. END
  2280. RETURN DirFlag
  2281. /*----------------------------------*/
  2282. RestartCdity:
  2283. PARSE ARG cditypath,taskname,wintitle
  2284.  
  2285. CALL QuitCdity(taskname,wintitle)
  2286. ADDRESS COMMAND WBrun' "'cditypath'"'
  2287.  
  2288. RETURN
  2289. /* --------------- */
  2290. GetCdityPath:
  2291. PARSE ARG cdity
  2292.  
  2293. SELECT
  2294.  
  2295.  WHEN EXISTS('SYS:WBstartup/'cdity) THEN
  2296.     Cmd=WBrun 'SYS:WBstartup/'cdity
  2297.  
  2298.  WHEN EXISTS('SYS:Tools/Commodities/'cdity) THEN
  2299.     Cmd=WBrun 'SYS:Tools/Commodities/'cdity
  2300.  
  2301.  WHEN EXISTS('SYS:Commodities/'cdity) THEN
  2302.     Cmd=WBrun 'SYS:Commodities/'cdity
  2303.  
  2304.  WHEN EXISTS('SYS:Tools/'cdity) THEN
  2305.     Cmd=WBrun 'SYS:Tools/'cdity
  2306.  
  2307.  WHEN EXISTS('SYS:Commods/'cdity) THEN
  2308.     Cmd=WBrun 'SYS:Commods/'cdity
  2309.  
  2310.  WHEN EXISTS('SYS:Cdity/'cdity) THEN
  2311.     Cmd=WBrun 'SYS:Cdity/'cdity
  2312.  
  2313.  WHEN EXISTS('SYS:Tools/Commodities/'cdity) THEN
  2314.     Cmd=WBrun 'SYS:Tools/Commodities/'cdity
  2315.  
  2316.  WHEN EXISTS('SYS:Tools/Commods/'cdity) THEN
  2317.     Cmd=WBrun 'SYS:Tools/Commods/'cdity
  2318.  
  2319.  WHEN EXISTS('SYS:Tools/Cdity/'cdity) THEN
  2320.     Cmd=WBrun 'SYS:Tools/Cdity/'cdity
  2321.  
  2322.  WHEN EXISTS('SYS:Tools/'cdity) THEN
  2323.     Cmd=WBrun 'SYS:Tools/'cdity
  2324.  
  2325.  WHEN EXISTS('SYS:Utilities/'cdity) THEN
  2326.     Cmd=WBrun 'SYS:Utilities/'cdity
  2327.  
  2328.  WHEN EXISTS('SYS:WBstartup (enabled)/'cdity) THEN
  2329.     Cmd=WBrun '"SYS:WBstartup (enabled)/'cdity'"'
  2330.  
  2331.  WHEN EXISTS('SYS:WBstartup/WBstartup (enabled)/'cdity) THEN
  2332.     Cmd=WBrun '"SYS:WBstartup/WBstartup (enabled)/'cdity'"'
  2333.  
  2334.  WHEN EXISTS('SYS:System/'cdity) THEN
  2335.     Cmd=WBrun 'SYS:System/'cdity
  2336.  
  2337.  WHEN EXISTS('SYS:c/'cdity) THEN
  2338.     Cmd=WBrun 'SYS:c/'cdity
  2339.  
  2340.  WHEN EXISTS('SYS:EASys!/bin/'cdity) THEN
  2341.     Cmd=WBrun 'SYS:EASys!/bin/'cdity
  2342.  
  2343.  OTHERWISE Cmd=''
  2344.  
  2345. END /* SELECT */
  2346.  
  2347. IF Cmd='' THEN
  2348. DO k=1 TO 8
  2349.   Cmd=ShowMessage('_GetCommodityPath','SYS:',cdity,,cdity)
  2350.   IF EXISTS(Cmd) THEN LEAVE
  2351. END
  2352. RETURN Cmd
  2353. /*----------------------------------*/
  2354. CheckCdity:
  2355. PARSE ARG cdity
  2356.  
  2357. ADDRESS COMMAND 'Install_C:CLIexchange >ENV:CheckCdity 'cdity' INFO'
  2358. running=MyGetENV('CheckCdity')
  2359. ADDRESS COMMAND 'delete >NIL: ENV:CheckCdity QUIET'
  2360.  
  2361. IF ~(running='???' | running='') THEN flag=1
  2362. ELSE flag=0
  2363.  
  2364. RETURN flag
  2365. /*----------------------------------*/
  2366. QuitCdity:
  2367. PARSE ARG cdity,wintitle
  2368.  
  2369. flag=CheckCdity(cdity)
  2370.  
  2371. IF flag=1 THEN
  2372. DO
  2373.  ADDRESS COMMAND 'Install_C:CLIexchange 'cdity' KILL'
  2374.  
  2375.  IF LEFT(wintitle,3)='>>>' THEN
  2376.  DO
  2377.   /* rename Window's Title before continuing */
  2378.   wintitle=STRIP(wintitle,'L','>')
  2379.   CALL DELAY(10)
  2380.   ADDRESS COMMAND SWindow' >NIL: p p p p p 'wintitle
  2381.  END
  2382.  
  2383.  IF ~(wintitle='') THEN CALL WinWaitQuit(wintitle)
  2384. END
  2385. RETURN flag
  2386. /*----------------------------------*/
  2387. WinWaitQuit:
  2388. PARSE ARG win
  2389.  
  2390. DO FOREVER
  2391.  ADDRESS COMMAND SWindow' >NIL: "'Win'" f'
  2392.  IF RC=11 THEN LEAVE
  2393.  
  2394.  CALL DELAY(100)
  2395. END
  2396. RETURN
  2397. /*----------------------------------*/
  2398. rmFromWBstartup:
  2399. PARSE ARG wbprog,startsysscript
  2400.  
  2401. tmp.1='SYS:WBStartup/'
  2402. tmp.2='SYS:WBStartup/WBStartup (enabled)/'
  2403. tmp.3='SYS:WBStartup/WBStartup(enabled)/'
  2404. tmp.4='SYS:WBStartup (enabled)/'
  2405. tmp.5='SYS:WBStartup(enabled)/'
  2406.  
  2407. n=0
  2408. DO k=1 to 5
  2409.  IF EXISTS(tmp.k''wbprog) THEN
  2410.  DO
  2411.   n=n+1
  2412.   CMD.n='delete >NIL: "'tmp.k''wbprog'" "'tmp.k''wbprog'.info" FORCE QUIET'
  2413.  END
  2414. END
  2415.  
  2416. IF n>0 THEN
  2417. DO
  2418.  CALL WriteLn(LOGFILE,'Removing "'wbprog'" from WBstartup locations. Will be started by 'startsysscript'...')
  2419.  CALL Do_and_Log
  2420. END
  2421. RETURN
  2422. /*----------------------------------*/
  2423. RemoveResources:
  2424. PARSE ARG prog
  2425.  
  2426. ADDRESS COMMAND 
  2427. 'echo >T:tmplist "failat 30*nstack 30000"'
  2428. 'list >>T:tmplist SYS:Locale/Help DIRS LFORMAT "delete >NIL: *"%s%s/'prog'.#?*" FORCE QUIET"'
  2429. 'list >>T:tmplist SYS:Locale/catalogs DIRS LFORMAT "delete >NIL: *"%s%s/'prog'.#?*" FORCE QUIET"'
  2430. 'list >>T:tmplist SYS:Locale/'prog' LFORMAT "delete >NIL: *"%s%s.#?*" FORCE QUIET"'
  2431. 'echo >>T:tmplist "delete >NIL: *"libs:Help'prog'.#?*" FORCE QUIET"'
  2432. 'echo >>T:tmplist "delete >NIL: *"ENV:'prog'*" FORCE ALL QUIET"'
  2433. 'echo >>T:tmplist "delete >NIL: *"ENV:'prog'.#?*" FORCE QUIET"'
  2434. 'echo >>T:tmplist "delete >NIL: *"ENVARC:'prog'*" FORCE ALL QUIET"'
  2435. 'echo >>T:tmplist "delete >NIL: *"ENVARC:'prog'.#?*" FORCE QUIET"'
  2436.  
  2437. CALL WriteLn(LOGFILE,' ')
  2438. CALL WriteLn(LOGFILE,' Removing "'prog'" Locale and ENV: resources')
  2439. CALL ExecScript('T:tmplist','')
  2440.  
  2441. ADDRESS COMMAND 'delete >NIL: T:tmplist QUIET'
  2442. RETURN
  2443. /*----------------------------------*/
  2444. removeCdity:
  2445. PARSE ARG prog,cause
  2446.  
  2447. IF POS(':',prog)>0 THEN
  2448. DO
  2449.  /* path directly known */
  2450.  n=1
  2451.  CMD.1='delete >NIL: "'prog'" FORCE QUIET'
  2452.  CALL Do_and_Log
  2453. END
  2454. ELSE
  2455. DO
  2456.  CALL rmFromWBstartup(prog,cause)
  2457.  
  2458.  tmp.1='SYS:Tools/Commodities/'
  2459.  tmp.2='SYS:Tools/'
  2460.  tmp.3='SYS:Commodities/'
  2461.  tmp.4='SYS:Utilities/'
  2462.  tmp.5='SYS:c/'
  2463.  
  2464.  n=0
  2465.  DO k=1 to 5
  2466.   IF EXISTS(tmp.k''prog) THEN
  2467.   DO
  2468.    n=n+1
  2469.    CMD.n='delete >NIL: "'tmp.k''prog'" "'tmp.k''prog'.info" FORCE QUIET'
  2470.   END
  2471.  END
  2472. END
  2473.  
  2474. IF n>0 THEN
  2475. DO
  2476.  CALL WriteLn(LOGFILE,'Removing "'prog'" because: 'cause)
  2477.  CALL Do_and_Log
  2478. END
  2479. RETURN
  2480. /*----------------------------------*/
  2481. FindProg:
  2482. PARSE ARG tmp.1,tmp.2,tmp.3,tmp.4,tmp.5,tmp.6,tmp.7,tmp.8,tmp.9
  2483.  
  2484. name1=tmp.1
  2485.  
  2486. CALL Msg_Con_Log('HH Scanning for: 'LEFT(name1,16)'..HHin:')
  2487.  
  2488. /* 8 args are valid */
  2489. tmp.9=''
  2490. f=''
  2491.  
  2492. DO i=1 to 9
  2493.  IF tmp.i='' THEN LEAVE
  2494. END
  2495.  
  2496. IF i=3 THEN
  2497.  name2=tmp.2
  2498. ELSE
  2499. DO
  2500.  IF i>2 THEN
  2501.  DO
  2502.   DO j=2 TO i-1
  2503.     f=tmp.i''name1
  2504.     CALL WriteLn(fCon,'HH'f)
  2505.     IF EXISTS(f) THEN RETURN f
  2506.   END
  2507.   RETURN ''
  2508.  END
  2509.  ELSE RETURN ''
  2510. END
  2511.  
  2512. SELECT
  2513.  WHEN Assigned(name1':') THEN
  2514.  DO
  2515.   IF EXISTS(name1':'name1) THEN f=name1':'name1
  2516.   IF EXISTS(name1':'name2) THEN f=name1':'name2
  2517.  END
  2518.  
  2519.  WHEN Assigned(name2':') THEN
  2520.  DO
  2521.   IF EXISTS(name2':'name2) THEN f=name2':'name2
  2522.   IF EXISTS(name2':'name1) THEN f=name2':'name1
  2523.  END
  2524.  
  2525.  OTHERWISE NOP
  2526. END
  2527.  
  2528. IF f='' THEN
  2529. DO
  2530.  IF asgn.count='ASGN.COUNT' THEN
  2531.  DO
  2532.   asgn.1='Work:'
  2533.   asgn.2='gfx:'
  2534.   asgn.3='graphics:'
  2535.   asgn.4='grafix:'
  2536.   asgn.5='graphix:'
  2537.   asgn.6='grafik:'
  2538.   asgn.7='Sound:'
  2539.   asgn.8='Programs:'
  2540.   asgn.9='Programmes:'
  2541.   asgn.10='Prog:'
  2542.   asgn.11='Progs:'
  2543.   asgn.12='Programme:'
  2544.   asgn.13='Office:'
  2545.   asgn.14='Büro:'
  2546.   asgn.15='Bureau:'
  2547.   asgn.16='Arbeit:'
  2548.   asgn.17='Internet:'
  2549.   asgn.18='Network:'
  2550.   asgn.19='Net:'
  2551.   asgn.20='Netz:'
  2552.   asgn.21='Video:'
  2553.   asgn.22='Movie:'
  2554.   asgn.23='Pix:'
  2555.   asgn.24='Pics:'
  2556.   asgn.25='Pictures:'
  2557.   asgn.26='Pic:'
  2558.   asgn.27='Bilder:'
  2559.   asgn.28='Bild:'
  2560.   asgn.29='AmiTCP:'
  2561.   asgn.30='NetConnect3:'
  2562.   asgn.31='NetConnect2:'
  2563.   asgn.32='NetConnect:'
  2564.   asgn.33='Genesis:'
  2565.   asgn.34='TCP:'
  2566.   asgn.35='Extra:'
  2567.   asgn.36='Extras:'
  2568.   asgn.37='xtra:'
  2569.   asgn.38='xtras:'
  2570.   asgn.39='Tool:'
  2571.   asgn.40='Tools:'
  2572.   asgn.41='Util:'
  2573.   asgn.42='Utilities:'
  2574.   asgn.43='Utils:'
  2575.   asgn.44='System:'
  2576.   asgn.45='Système:'
  2577.   asgn.46='usr:'
  2578.   asgn.47='user:'
  2579.   asgn.48='use:'
  2580.   asgn.49='WB:'
  2581.   asgn.50='SYS:'
  2582.   asgn.count=50
  2583.  
  2584.   IF device.count>0 THEN
  2585.   DO
  2586.    DO i=1 to device.count
  2587.     j=asgn.count+i
  2588.     asgn.j=device.i
  2589.    END
  2590.    asgn.count=asgn.count+device.count
  2591.   END
  2592.  
  2593.   sub.1=''
  2594.   sub.2='c/'
  2595.   sub.3='System/'
  2596.   sub.4='Utilities/'
  2597.   sub.5='Tools/'
  2598.   sub.6='Tools/Commodities/'
  2599.  
  2600.   sub.7='bin/'
  2601.   sub.8='prog/'
  2602.   sub.9='gfx/'
  2603.   sub.10='sound/'
  2604.   sub.11='audio/'
  2605.   sub.12='video/'
  2606.  
  2607.   sub.13='prg/'
  2608.   sub.14='progs/'
  2609.   sub.15='graphic/'
  2610.  
  2611.   sub.16='programs/'
  2612.   sub.17='programme/'
  2613.   sub.18='programmes/'
  2614.   sub.19='program/'
  2615.   sub.20='programm/'
  2616.   sub.21='prgs/'
  2617.  
  2618.   sub.22='graphics/'
  2619.   sub.23='graphik/'
  2620.   sub.24='graphix/'
  2621.   sub.25='grafik/'
  2622.   sub.26='grafix/'
  2623.   sub.27='grafx/'
  2624.  
  2625.   sub.28='sounds/'
  2626.   sub.29='snd/'
  2627.  
  2628.   sub.30='Commodities/'
  2629.   sub.31='Prefs/'
  2630.   sub.32='Utils/'
  2631.   sub.33='Util/'
  2632.   sub.34='Arbeit/'
  2633.   sub.35='Arbeiten/'
  2634.   sub.36='Work/'
  2635.   sub.37='Use/'
  2636.   sub.38='User/'
  2637.   sub.39='usr/'
  2638.   sub.count=39
  2639.  END
  2640.  
  2641.  DO k=1 to asgn.count
  2642.   IF f='' & Assigned(asgn.k) THEN
  2643.   DO m=1 to sub.count
  2644.    IF EXISTS(asgn.k''sub.m) THEN
  2645.    DO
  2646.     CALL WriteLn(fCon,'HH'asgn.k''sub.m)
  2647.     SELECT
  2648.      WHEN EXISTS(asgn.k''sub.m''name1'/'name1) THEN f=asgn.k''sub.m''name1'/'name1
  2649.      WHEN EXISTS(asgn.k''sub.m''name1'/'name2) THEN f=asgn.k''sub.m''name1'/'name2
  2650.      WHEN EXISTS(asgn.k''sub.m''name2'/'name2) THEN f=asgn.k''sub.m''name2'/'name2
  2651.      WHEN EXISTS(asgn.k''sub.m''name2'/'name1) THEN f=asgn.k''sub.m''name2'/'name1
  2652.      WHEN EXISTS(asgn.k''sub.m'c/'name1) THEN f=asgn.k''sub.m'c/'name1
  2653.      WHEN EXISTS(asgn.k''sub.m'c/'name2) THEN f=asgn.k''sub.m'c/'name2
  2654.      WHEN EXISTS(asgn.k''sub.m'bin/'name1) THEN f=asgn.k''sub.m'bin/'name1
  2655.      WHEN EXISTS(asgn.k''sub.m'bin/'name2) THEN f=asgn.k''sub.m'bin/'name2
  2656.      WHEN EXISTS(asgn.k''sub.m'Shell/'name1) THEN f=asgn.k'Shell/'sub.m''name1
  2657.      WHEN EXISTS(asgn.k''sub.m'Shell/'name2) THEN f=asgn.k'Shell/'sub.m''name2
  2658.      WHEN EXISTS(asgn.k''sub.m'cli/'name1) THEN f=asgn.k'cli/'sub.m''name1
  2659.      WHEN EXISTS(asgn.k''sub.m'cli/'name2) THEN f=asgn.k'cli/'sub.m''name2
  2660.      WHEN EXISTS(asgn.k''sub.m'Tools/'name1) THEN f=asgn.k'Tools/'sub.m''name1
  2661.      WHEN EXISTS(asgn.k''sub.m'Tools/'name2) THEN f=asgn.k'Tools/'sub.m''name2
  2662.      WHEN EXISTS(asgn.k''sub.m'System/'name1) THEN f=asgn.k'System/'sub.m''name1
  2663.      WHEN EXISTS(asgn.k''sub.m'System/'name2) THEN f=asgn.k'System/'sub.m''name2
  2664.      WHEN EXISTS(asgn.k''sub.m''name1) THEN f=asgn.k''sub.m''name1
  2665.      WHEN EXISTS(asgn.k''sub.m''name2) THEN f=asgn.k''sub.m''name2
  2666.      OTHERWISE NOP
  2667.     END
  2668.    END
  2669.    IF ~(f='') THEN LEAVE
  2670.   END
  2671.   IF ~(f='') THEN LEAVE
  2672.  END
  2673. END
  2674. RETURN f
  2675.  
  2676. /*----------------------------------*/
  2677. GetLanguage:
  2678.  
  2679. LanguageNumber=1      /* Presets */
  2680. Language=''
  2681.  
  2682. IF (open(fTMP, 'ENV:sys/locale.prefs', 'read')) THEN
  2683. DO
  2684.   DO i=1 to 50
  2685.       r=READCH(fTMP)
  2686.   END
  2687.  
  2688.   Land=''
  2689.  
  2690.   i=0
  2691.   DO UNTIL EOF(fTMP)
  2692.       i=i+1
  2693.       Char=ReadCh(fTMP)
  2694.       IF (C2D(Char)=0) THEN
  2695.           LEAVE
  2696.       ELSE
  2697.           Land=Land''Char
  2698.   END
  2699.  
  2700.   /* 32 characters from begin of Lang_x to begin of Lang_y */
  2701.   DO j=i to 31 UNTIL EOF(fTMP)  /* jump over next 20 chars */
  2702.    r=READCH(fTMP)
  2703.   END
  2704.  
  2705.   Language=ReadLanguage()
  2706.   r=Close(fTMP)
  2707. END
  2708.  
  2709. IF (Language='') THEN Language='english'
  2710.  
  2711. DROP Char
  2712. DROP r
  2713.  
  2714. RealLanguage=Language
  2715. ADDRESS COMMAND 'setenv LANGUAGE 'RealLanguage
  2716.  
  2717. IF ~EXISTS(Language'/_QuitInstall') THEN Language='english'
  2718.  
  2719. RETURN
  2720. /*----------------------------------*/
  2721. ReadLanguage:
  2722.  
  2723. Langua=''
  2724.  
  2725. Langua=ReadCh(fTMP)
  2726. IF (C2D(Langua)=0) THEN RETURN ''
  2727.  
  2728. i=1
  2729. DO UNTIL EOF(fTMP)
  2730.    i=i+1
  2731.    Char=ReadCh(fTMP)
  2732.    IF (C2D(Char)=0) THEN
  2733.      LEAVE
  2734.    ELSE
  2735.      Langua=Langua''Char
  2736. END
  2737.  
  2738. /* 30 characters from begin of Lang_x to begin of Lang_y */
  2739. DO j=i to 29 UNTIL EOF(fTMP)
  2740.    r=READCH(fTMP)
  2741. END
  2742.  
  2743. RETURN Langua
  2744. /* ---------------------------- */
  2745. UnpackRequest:
  2746. PARSE ARG InstName,archive,MsgResource
  2747.  
  2748. IF ~EXISTS(archive) THEN RETURN 0
  2749.  
  2750. r=ShowMessage(MsgResource,,,,InstName)
  2751. IF r=0 THEN RETURN 0
  2752.  
  2753. selDestDir=''
  2754. DO z=1 TO 6
  2755.  selDestDir=ShowMessage('_PathReq','SYS:',,,AppName,InstName)
  2756.  IF EXISTS(selDestDir) THEN LEAVE
  2757. END
  2758. IF ~EXISTS(selDestDir) THEN RETURN 0
  2759.  
  2760. CALL UnpackArchive(archive,selDestDir)
  2761. RETURN selDestDir
  2762. /* ---------------------------- */
  2763. UnpackArchive:
  2764. PARSE ARG arc,dest
  2765.  
  2766. IF ~EXISTS(arc) THEN
  2767. DO z=1 to 6
  2768.  actdir=StarterDir
  2769.  
  2770.  Archive_Dir=ShowMessage('_PathReq',actDir,,,InstName'?',AppName)
  2771.  
  2772.  tst=Archive_Dir''arc
  2773.  IF EXISTS(tst) THEN
  2774.  DO
  2775.    arc=tst
  2776.    LEAVE
  2777.  END
  2778. END
  2779.  
  2780. IF ~EXISTS(arc) THEN RETURN
  2781. IF ~(RIGHT(dest,1)=':') & ~(RIGHT(dest,1)='/') THEN dest=dest'/'
  2782.  
  2783. Console='>"CON:'ConsoleSize'/Install: Unpacking 'RIGHT(arc,LENGTH(arc)-LASTPOS('/',arc))  TO  dest'/AUTO/NOCLOSE"'
  2784. CMD.1=StarterDir'lha 'Console' x -am "'arc'" "'dest'"'
  2785. CALL Do_and_Log
  2786. RETURN
  2787. /* ---------------------------- */
  2788. ReplaceENVprefs:
  2789. PARSE ARG SourceDir,ENVprefs
  2790.  
  2791. IF EXISTS('ENV:'ENVprefs) THEN
  2792.     CMD.1='copy ENVARC:'ENVprefs' ENVARC:'ENVprefs''TimeStamp' CLONE QUIET'
  2793. ELSE
  2794.     CMD.1=" "
  2795.  
  2796. CMD.2='copy "'SourceDir''ENVprefs'" ENV: CLONE QUIET'
  2797. CMD.3='copy "ENV:'ENVprefs'" ENVARC: CLONE QUIET'
  2798. CALL Do_and_Log
  2799.  
  2800. /* ----DeInst:-------- */
  2801.  
  2802. r=wdi('if exists "ENV:'ENVprefs''TimeStamp'"')
  2803. r=wdi('  echo "*e[1m Restoring*e[0m your  ENVARC:*e[1m'ENVprefs'*e[0m"')
  2804. r=wdi('  wait 3')
  2805. r=wdi('  copy "ENVARC:'ENVprefs''TimeStamp'" "ENVARC:'ENVprefs'" CLONE')
  2806. r=wdi('  copy "ENV:'ENVprefs''TimeStamp'" "ENV:'ENVprefs'" CLONE')
  2807. r=wdi('  delete >NIL: "ENVARC:'ENVprefs''TimeStamp'" QUIET')
  2808. r=wdi('  delete >NIL: "ENV:'ENVprefs''TimeStamp'" QUIET')
  2809. r=wdi('  echo "*n*e[1m Original ENVARC:'ENVprefs'.. restored!*e[0m"')
  2810. r=wdi('endif')
  2811. CALL SpaceNextEntry
  2812.  
  2813. RETURN
  2814. /* ------------------------------------------------------- */
  2815. Copy_SrcDest:
  2816.  
  2817. Action=ShowMessage(MsgSrcDest,,,,AppName)
  2818.  
  2819. IF (RIGHT(InstDest1,1)=':') THEN
  2820.    InstDest1_Dir=InstDest1
  2821. ELSE
  2822.    InstDest1_Dir=InstDest1'/'
  2823.  
  2824. IF (RIGHT(InstDest2,1)=':') THEN
  2825.    InstDest2_Dir=InstDest2
  2826. ELSE
  2827.    InstDest2_Dir=InstDest2'/'
  2828.  
  2829. IF (Action=1) THEN
  2830. DO
  2831.    Selected_Dest=InstDest1
  2832.    Selected_Dest_Dir=InstDest1_Dir
  2833. END
  2834.  
  2835. IF (Action=2 & (AlternateDir='')) THEN
  2836. DO FOREVER
  2837.  Selected_Dest_Dir=ShowMessage('_PathReq','SYS:',,,AppName,InstName)
  2838.  IF (Selected_Dest_Dir='') THEN Selected_Dest_Dir=InstDest1_Dir
  2839.  
  2840.  Selected_Dest=STRIP(Selected_Dest_Dir,'T','/')
  2841.  
  2842.  DO UNTIL Action>0
  2843.   Action=ShowMessage(MsgOtherDir,,,,AppName,Selected_Dest)
  2844.   IF (Action=0) THEN CALL ExitMe('USER_QUITS')
  2845.  END
  2846.  
  2847.  IF (Action=1) THEN LEAVE
  2848. END
  2849.  
  2850. IF (Action=2 & ~(AlternateDir='')) THEN
  2851. DO
  2852.  Selected_Dest=STRIP(AlternateDir,'T','/')
  2853.  Selected_Dest_Dir=AlternateDir
  2854.  InstDest2=''
  2855.  InstDest2_Dir=''
  2856. END
  2857.  
  2858. IF (Action=0) THEN CALL ExitMe('USER_QUITS')
  2859.  
  2860. SourceDir=InstSource
  2861. DestDir1=Selected_Dest
  2862.  
  2863. IF ~(InstDest2='') THEN
  2864. DO
  2865.    IF (UPPER(Selected_Dest)=UPPER(InstDest1)) THEN DestDir2=InstDest2
  2866. END
  2867.  
  2868. CALL CopyAction
  2869.  
  2870. InstDest2=''
  2871. InstDest2_Dir=''
  2872. AlternateDir=''
  2873.  
  2874. RETURN
  2875. /* ---------------------------- */
  2876. CopyAction:
  2877.  
  2878. ItemNr=ItemNr + 1
  2879. DeInstallScript=DeInstDir'/'DeInstScrName'.'ItemNr
  2880. TmpScript='T:'DeInstScrName'.'ItemNr
  2881.  
  2882. IF ~Open(CpDeInst, TmpScript, 'W') THEN
  2883.    CALL Err_ShowMessage(TmpScript)
  2884. ELSE
  2885.    r=WriteLn(CpDeInst, 'failat 30')
  2886.  
  2887. r=WriteLn(LOGFILE,CR' ==> Created DeInstall-Script: "'DeInstallScript'"')
  2888.  
  2889. IF (RIGHT(DestDir1,1)=':' | RIGHT(DestDir1,1)='/') THEN
  2890.    DestDir1_Dir=DestDir1
  2891. ELSE
  2892.    DestDir1_Dir=DestDir1'/'
  2893.  
  2894. IF (RIGHT(DestDir2,1)=':' | RIGHT(DestDir2,1)='/') THEN
  2895.    DestDir2_Dir=DestDir2
  2896. ELSE
  2897.    DestDir2_Dir=DestDir2'/'
  2898.  
  2899. IF (DoCheck=1) THEN
  2900. DO
  2901.   DestDir=DestDir1_Dir
  2902.   CALL CopySecure
  2903.  
  2904.   CALL PRAGMA('DIRECTORY','iGuide:')
  2905.  
  2906.   IF ~(DestDir2='') THEN
  2907.   DO
  2908.      DestDir=DestDir2_Dir
  2909.      CALL CopySecure
  2910.   END
  2911.  
  2912.   CALL PRAGMA('DIRECTORY','iGuide:')
  2913. END
  2914. ELSE
  2915. DO
  2916.   Console='>"'ConsoleType''ConsoleSize'/'AppName' ... copying to 'DestDir1'/AUTO/NOCLOSE"'
  2917.   CMD.1=copy Console '"'SourceDir'" "'DestDir1'" CLONE 'Recursive
  2918.  
  2919.   IF ~(DestDir2='') THEN
  2920.   DO
  2921.      Console='>"'ConsoleType''ConsoleSize'/'AppName' ... copying to 'DestDir2'/AUTO/NOCLOSE"'
  2922.      CMD.2=copy Console '"'SourceDir'" "'DestDir2'" CLONE 'Recursive
  2923.   END
  2924.  
  2925.   CALL Do_and_Log
  2926.  
  2927.   IF (ResultCommand=10) THEN CALL ExitMe('DESTFULL')
  2928. END
  2929.  
  2930.  
  2931. IF ~(InstAssign='') THEN
  2932. DO
  2933.   CMD.1='assign "'InstAssign'" "'DestDir1'" ADD'
  2934.   CALL Do_and_Log
  2935.  
  2936.   IF (UPPER(InstAssign)='S:') THEN Additional_S=DestDir1
  2937.   IF (UPPER(InstAssign)='C:') THEN Additional_C=DestDir1
  2938.   IF (UPPER(InstAssign)='L:') THEN Additional_L=DestDir1
  2939.   IF (UPPER(InstAssign)='LIBS:') THEN Additional_Libs=DestDir1
  2940.   IF (UPPER(InstAssign)='DEVS:') THEN Additional_Devs=DestDir1
  2941.   IF (UPPER(InstAssign)='FONTS:') THEN Additional_Fonts=DestDir1
  2942.   IF (UPPER(InstAssign)='LOCALE:') THEN Additional_Locale=DestDir1
  2943.   IF (UPPER(InstAssign)='HELP:') THEN Additional_Help=DestDir1
  2944. END
  2945.  
  2946.  
  2947. /* -----Undo_copy:------- */
  2948.  
  2949. r=Close(CpDeInst)
  2950.  
  2951. IF (NoDeInstForFiles=1) THEN
  2952. DO
  2953.  r=wdi('echo "*e[1m New 'InstName' Files will remain on your system!*n*e[0m"')
  2954.  CALL SpaceNextEntry
  2955.  CALL ResetCopyFlags
  2956.  RETURN
  2957. END
  2958.  
  2959. IF (DoCheck=1) THEN
  2960.  DestDir1=DestDir
  2961. ELSE
  2962. DO
  2963.  CALL OpenCon(InstName' ...')
  2964.  r=WriteLn(fCon,CR' Creating DeInstall-Script:'CR' 'DeInstallScript CR' For:    'STRIP(InstName,'L',' ')''CR' Folder: 'DestDir1' ...')
  2965.  
  2966.  CALL PRAGMA('DIRECTORY', SourceDir)
  2967.  
  2968.  ADDRESS COMMAND 'list >>'TmpScript' FILES 'Recursive' LFORMAT "delete *"'DestDir1_Dir'%s%s*""'
  2969.  
  2970.  CALL DELAY(100)
  2971.  IF ~(DestDir2='') THEN
  2972.   DO
  2973.    r=WriteLn(fCon,CR' Appending DeInstall-Script: 'DeInstallScript CR' For:    'STRIP(InstName,'L',' ')''CR' Folder: 'DestDir2' ...')
  2974.  
  2975.    ADDRESS COMMAND 'list >>'TmpScript' FILES 'Recursive' LFORMAT "delete *"'DestDir2_Dir'%s%s*""'
  2976.  
  2977.    CALL DELAY(100)
  2978.   END
  2979.  
  2980.  CALL PRAGMA('DIRECTORY','iGuide:')
  2981.  CALL CloseCon
  2982. END
  2983.  
  2984. TScript='T:'DeInstScrName'.'ItemNr
  2985.  
  2986. r=wdi('if exists "'DestDir1'"')
  2987. r=wdi(' echo " Removing *e[1m'InstName'*e[0m-Files in Directory *e[1m'DestDir1'*e[0m..."')
  2988. r=wdi(' wait 3')
  2989. r=wdi(' execute 'TScript)
  2990. r=wdi(' delete >NIL: 'TScript' QUIET')
  2991. r=wdi('endif')
  2992. CALL SpaceNextEntry
  2993.  
  2994.  
  2995. IF (NoDeInstForDir=0) THEN
  2996. DO
  2997.  r=UPPER(DestDir1)
  2998.  IF ~(r='WORK:' | r='SYS:' | r='SYS:PREFS' | r='SYS:TOOLS' | r='SYS:UTILITIES' | r='ENVARC:' | r='SYS:C' | r='SYS:LIBS' | r='ENV:' | r='C:' | r='S:' | r='L:' | r='FONTS:' | r='LIBS:' | LEFT(r,5)='DEVS:' | LEFT(r,7)='LOCALE:' | LEFT(r,5)='HELP:') THEN
  2999.  DO
  3000.   r=wdi('if exists "'DestDir1'"')
  3001.   r=wdi(' ask " Remove the whole Directory 'DestDir1' ?  [y/n] "')
  3002.   r=wdi(' if warn')
  3003.  
  3004.   IF ~(InstAssign='') THEN
  3005.   DO
  3006.     r=wdi('   path "'DestDir1'" REMOVE')
  3007.     r=wdi('   path "'InstAssign'" REMOVE')
  3008.     r=wdi('   path "'InstAssign'" REMOVE')
  3009.  
  3010.     u=UPPER(InstAssign)
  3011.     IF ~(u="S:" | u="C:" | u="L:" | u="LIBS:" | u="DEVS:" u="FONTS:" | u="LOCALE:" | u="HELP:" | u="SYS:") THEN
  3012.         r=wdi('   assign "'InstAssign'" "'STRIP(DestDir1,'T','/')'" REMOVE')
  3013.  
  3014.     IF (u="S:") THEN r=wdi('   assign 'InstAssign' "'Additional_S'" REMOVE')
  3015.     IF (u="C:") THEN r=wdi('   assign 'InstAssign' "'Additional_C'" REMOVE')
  3016.     IF (u="L:") THEN r=wdi('   assign 'InstAssign' "'Additional_L'" REMOVE')
  3017.     IF (u="LIBS:") THEN r=wdi('   assign 'InstAssign' "'Additional_Libs'" REMOVE')
  3018.     IF (u="DEVS:") THEN r=wdi('   assign 'InstAssign' "'Additional_Devs'" REMOVE')
  3019.     IF (u="FONTS:") THEN r=wdi('   assign 'InstAssign' "'Additional_Fonts'" REMOVE')
  3020.     IF (u="LOCALE:") THEN r=wdi('   assign 'InstAssign' "'Additional_Locale'" REMOVE')
  3021.     IF (u="HELP:") THEN r=wdi('   assign 'InstAssign' "'Additional_Help'" REMOVE')
  3022.   END
  3023.  
  3024.   r=wdi('   wait 1')
  3025.   r=wdi('   T:swipe >NIL: "'STRIP(DestDir1,'T','/')'" ALL FORCE QUIET')
  3026.   IF ~(DestDir2='') THEN r=wdi('   T:swipe >NIL: "'STRIP(DestDir2,'T','/')'" ALL FORCE QUIET')
  3027.  
  3028.   r=wdi(' endif')
  3029.   r=wdi('endif')
  3030.   CALL SpaceNextEntry
  3031.  END
  3032. END
  3033.  
  3034. CALL ResetCopyFlags
  3035. RETURN
  3036. /* ----------------------- */
  3037. ResetCopyFlags:
  3038.  
  3039. InstAssign=''
  3040. DestDir2=''
  3041. DestDir2_Dir=''
  3042. Recursive='ALL'
  3043. InstName=InstApp
  3044. NoDeInstForDir=0
  3045. NoDeInstForFiles=0
  3046. DoCheck=0
  3047.  
  3048. ADDRESS COMMAND
  3049. 'copy "'TmpScript'" "'DeInstallScript'" CLONE QUIET'
  3050. 'delete >NIL: "'TmpScript'" QUIET'
  3051.  
  3052. RETURN
  3053.  
  3054. /*----------------------------------------------------------------*/
  3055. CopySecure:
  3056.  
  3057. r=WriteLn(CpDeInst,'echo "*ec*n*n*e[1m Restoring/Removing*e[0m installed Files in *e[1m'DestDir'*e[0m ..."')
  3058. r=WriteLn(CpDeInst,'wait 3')
  3059.  
  3060. CALL OpenCon(InstName' copying..')
  3061.  
  3062. a=CR""InstName""CR CR" Searching duplicate files and copying is in progress."CR" You will be asked if a file would be replaced."CR" (Go, and drink a coffee :)"CR CR" Source Folder: "SourceDir CR" Destin Folder: "DestDir
  3063. r=WriteLn(fCon,a)
  3064. r=WriteLn(LOGFILE,CR' Actions for 'InstName':'CR CR a CR)
  3065.  
  3066. Files.count=1
  3067. Files.1=SourceDir
  3068.  
  3069. FileOp=copy
  3070. FileOpOpts='CLONE 'Recursive
  3071.  
  3072. k=1
  3073. IconExists=0
  3074.  
  3075. IF ~(RIGHT(Files.1,1)=':') THEN Files.1=Files.1'/'
  3076.  
  3077. CALL CheckSource
  3078.  
  3079. MainDestDir=DestDir
  3080. MainDirLength=LENGTH(Files.k)
  3081.  
  3082. theDir=strip(MainDestDir,'T','/')
  3083. IF (IsDir(theDir)=-1) THEN ADDRESS COMMAND 'makedir "'theDir'"'
  3084.  
  3085. /* Create Destination Sub-Directories */
  3086.  
  3087. IF (DirCount > 0) THEN
  3088. DO SubCount=1 to DirCount
  3089.   ThisDestDir=MainDestDir || RIGHT(SourceDir.SubCount, LENGTH(SourceDir.SubCount)-MainDirLength)
  3090.   MakeDestDir=Strip(ThisDestDir, 'T', '/')
  3091.  
  3092.   IF (IsDir(MakeDestDir)=-1) THEN ADDRESS COMMAND 'makedir "'MakeDestDir'"'
  3093. END
  3094.  
  3095. DoIt=1
  3096. IF (SourceCount > 0) THEN
  3097. DO SubCount=1 to SourceCount
  3098.   ActualFile=SourceDirs.SubCount || SourceFiles.SubCount
  3099.   Target=MainDestDir || RIGHT(SourceDirs.SubCount, LENGTH(SourceDirs.SubCount)-MainDirLength) || SourceFiles.SubCount
  3100.  
  3101.   CALL CheckExist
  3102.   IF (DoIt=0) THEN LEAVE
  3103. END
  3104.  
  3105. CALL CloseCon
  3106. CALL LogLine
  3107. RETURN
  3108.  
  3109. /* ----------------------------- */
  3110. CheckExist:
  3111.  
  3112. IF ~EXISTS(Target) THEN
  3113. DO
  3114.   T_exists=0
  3115.   IF DoIt=2 THEN DoIt=1 /* was set before, not anymore valid */
  3116. END
  3117. ELSE
  3118. DO
  3119.   T_exists=1
  3120.  
  3121.    IF DoIt=1 | DoIt=2 THEN DoIt=CompareVersions(ActualFile,Target)
  3122.  
  3123.    IF DoIt=4 THEN
  3124.    DO
  3125.      Rest=SourceCount-SubCount
  3126.  
  3127.      IF (Files.count > 1 | Source_is_Dir=1) THEN
  3128.        MsgOffset=3
  3129.      ELSE
  3130.        MsgOffset=0
  3131.  
  3132.      IF (Rest>1) THEN MsgNr=2 + MsgOffset
  3133.      IF (Rest=1) THEN MsgNr=3 + MsgOffset
  3134.      IF (Rest=0) THEN MsgNr=4 + MsgOffset
  3135.  
  3136.      Version=Ver.1
  3137.      sz_AttrSrc=GetFileAttributes(ActualFile)
  3138.  
  3139.      Version=Ver.2
  3140.      sz_AttrDest=GetFileAttributes(Target)
  3141.  
  3142.      DoIt=ShowMessage('_CopyReplace.'MsgNr,,,,sz_AttrDest,sz_AttrSrc,Rest,k,Files.count,AppName)
  3143.    END
  3144. END
  3145.  
  3146. IF DoIt=1 | DoIt=3 THEN
  3147. DO
  3148.  IF T_exists=1 THEN CALL Msg_Con_Log('HHH Replacing:3H...'RIGHT(Target,22)'5H Size 's2'2H 'v2'HH by: ...'RIGHT(ActualFile,22)'5H Size 's1'2H 'v1'H')
  3149.  CALL DoCopy
  3150. END
  3151.  
  3152. IF EXISTS(Target''TimeStamp) THEN
  3153. DO
  3154.   r=WriteLn(CpDeInst, ' copy "'Target''TimeStamp'" "'Target'" CLONE')
  3155.   r=WriteLn(CpDeInst, ' delete >NIL: "'Target''TimeStamp'" FORCE QUIET')
  3156.   r=WriteLn(CpDeInst, ' echo " 'Target'.. restored!"')
  3157.   r=WriteLn(BakDeInst,' delete >NIL: "'Target''TimeStamp'" FORCE')
  3158. END
  3159.  
  3160. RETURN
  3161.  
  3162. /* ----------------------------- */
  3163. CompareVersions:
  3164. PARSE ARG file1,file2
  3165.  
  3166. s1=GetSize(file1)
  3167. s2=GetSize(file2)
  3168. v1=GetVer(file1)
  3169. v2=GetVer(file2)
  3170.  
  3171. SELECT
  3172.  WHEN (s1=s2 & V1<=V2 & V2>0) THEN RETURN 2
  3173.  WHEN (V1>0 & V2>0 & V1>V2) THEN RETURN 1
  3174.  WHEN (s1=s2 & V1=0 & V2=0) THEN RETURN 1
  3175.  OTHERWISE RETURN 4
  3176. END
  3177.  
  3178. /* ----------------------------- */
  3179. DoCopy:
  3180.  
  3181. IF (T_exists=1 & ~EXISTS(Target''TimeStamp)) THEN /* Backup only once ! */
  3182. DO
  3183.   Cmd='copy "'Target'" "'Target''TimeStamp'" CLONE QUIET'
  3184.   ADDRESS COMMAND Cmd
  3185.   r=WriteLn(LOGFILE,Cmd)
  3186. END
  3187.  
  3188. ADDRESS COMMAND FileOp '"'ActualFile'" "'Target'" 'FileOpOpts
  3189.  
  3190. Code=RC
  3191.  
  3192. IF (Code=5) THEN
  3193. DO
  3194.   Action=ShowMessage('_CopyUnprotect',,,,AppName,Target)
  3195.   IF (Action=1) THEN
  3196.   DO
  3197.      ADDRESS COMMAND
  3198.      'delete >NIL: "'Target'" FORCE QUIET'
  3199.      FileOp '"'ActualFile'" "'Target'" 'FileOpOpts
  3200.  
  3201.      Code=RC
  3202.   END
  3203. END
  3204.  
  3205. IF (Code>=10) THEN CALL ExitMe('DESTFULL')
  3206. RETURN
  3207.  
  3208. /* ----------------------------- */
  3209. GetFileAttributes:
  3210. PARSE ARG CkVerFile
  3211.  
  3212. AttrFile='T:FM_Attr_'ProcessNumber
  3213. VersionNr=0
  3214.  
  3215. ADDRESS COMMAND 'list >'AttrFile' "'CkVerFile'" LFORMAT "    %n*n    %l Bytes*n    %p*n    %d   %t*n    %c"'
  3216.  
  3217. Version=GetVer(CkVerFile)
  3218.  
  3219. IF (Open(fTMP, AttrFile, 'read')) THEN
  3220. DO
  3221.   sz_Attr=ReadLn(fTMP)
  3222.   sz_Attr=sz_Attr || CR || ReadLn(fTMP)
  3223.   sz_Attr=sz_Attr || CR || LEFT(ReadLn(fTMP), 85)
  3224.   sz_Attr=sz_Attr || CR || ReadLn(fTMP)
  3225.   sz_Attr=sz_Attr || CR || LEFT(ReadLn(fTMP), 85)
  3226.  
  3227.   sz_Attr=sz_Attr || CR || "    Version:        "Version
  3228.  
  3229.   r=Close(fTMP)
  3230. END
  3231.  
  3232. RETURN sz_Attr
  3233.  
  3234. /* ----------------------------- */
  3235. GetSize:
  3236. PARSE ARG file
  3237.  
  3238. size=0
  3239. BytesTemp='T:BytesTemp'
  3240.  
  3241. ADDRESS COMMAND 'list >'BytesTemp' "'file'" LFORMAT "%l"'
  3242.  
  3243. IF (Open(TEMPFILE,BytesTemp,'read')) THEN
  3244. DO
  3245.   size=VALUE(ReadLn(TEMPFILE))
  3246.   StrBytes=size' Bytes'
  3247.   CALL Close(TEMPFILE)
  3248. END
  3249.  
  3250. RETURN size
  3251.  
  3252. /* ----------------------------- */
  3253. GetVer:
  3254. PARSE ARG file
  3255.  
  3256. IsExecutable=CheckExecutable(file)
  3257.  
  3258. ver=0
  3259. VerName=''
  3260. VerTmp='FMver_'ProcessNumber
  3261.  
  3262. size=GetSize(file)
  3263.  
  3264. IF (size<850000 & (IsExecutable | UPPER(RIGHT(file,8))='.CATALOG')) THEN
  3265. DO
  3266.  ADDRESS COMMAND 'version >ENV:'VerTmp' "'file'"'
  3267.  IF (RC<20) THEN
  3268.  DO
  3269.   transfrom='a0'x || ''
  3270.   transto='  '
  3271.   Version=Translate(MyGetENV(VerTmp),transto,transfrom,' ')
  3272.   VerName=Word(Version,1)
  3273.   IF ~((LEFT(Version, 14)="Could not find") | Words(Version)<2) THEN
  3274.   DO
  3275.     transfrom='AaßbBcCdDeEfFgGhH¹²³,_iIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ;::/+-~#"&$%§[]{}=>|<!?@ '
  3276.     transto=  '11222334455667788123.'
  3277.     VersionNr=STRIP(Translate(Word(Version,2),transto,transfrom,' '),'B',' ')
  3278.     IF POS(' ',VersionNr)=0 THEN Ver=Value(STRIP(VersionNr,'T','.'))
  3279.   END
  3280.  END
  3281. END
  3282. RETURN ver
  3283. /* ----------------------------- */
  3284. GetDevList:
  3285. ADDRESS COMMAND 'C:assign VOLS >T:DevList'ProcessNumber
  3286.  
  3287. i=0
  3288. DROP device
  3289. CALL Open(fTMP,'T:DevList'ProcessNumber,'R')
  3290. DO FOREVER
  3291.    r=READLN(fTMP)
  3292.    IF EOF(fTMP) THEN LEAVE
  3293.  
  3294.    posi=POS(' [Mounted]',r)
  3295.    IF posi>1 THEN
  3296.    DO
  3297.      i=i+1
  3298.      device.i=LEFT(r,posi-1)':'
  3299.    END
  3300. END
  3301. CALL Close(fTMP)
  3302. ADDRESS COMMAND 'delete >NIL: T:DevList'ProcessNumber' QUIET'
  3303.  
  3304. device.count=i
  3305. RETURN
  3306. /* ----------------------------- */
  3307. CheckExecutable:
  3308. PARSE ARG CheckExeFile
  3309.  
  3310. IF (Open(fTMP, CheckExeFile, 'read')) THEN
  3311. DO
  3312.  Head=ReadCh(fTMP, 4)
  3313.  HeaderBytes=c2x(Head)
  3314.  r=Close(fTMP)
  3315. END
  3316.  
  3317. Flag=0
  3318. IF (HeaderBytes="000003F3") THEN Flag=1    /* Executable */
  3319.  
  3320. RETURN Flag
  3321.  
  3322. /* ----------------------------- */
  3323. CheckSource:
  3324.  
  3325. Source_is_Dir=0   /* Preset */
  3326. SourceCount=Files.count - k
  3327. SubCount=0
  3328. DirCount=0
  3329.  
  3330. DirFlag=IsDir(Files.k)
  3331. IF (DirFlag=1) THEN
  3332. DO
  3333.   Source_is_Dir=1
  3334.   ADDRESS COMMAND
  3335.   'list "'Files.k'" >'CheckSourceDirs' ALL DIRS LFORMAT="%p%s"'
  3336.   'list "'Files.k'" >'CheckSourceFile' ALL FILES LFORMAT="%p*n%s"'
  3337.  
  3338.   SourceCount=1
  3339.   IF (Open(fTMP,CheckSourceFile,'read')) THEN
  3340.   DO
  3341.     DO UNTIL (EOF(fTMP))
  3342.      SourceDirs.SourceCount=ReadLn(fTMP)
  3343.      SourceFiles.SourceCount=ReadLn(fTMP)
  3344.      SourceCount=SourceCount + 1
  3345.     END
  3346.  
  3347.     SourceCount=SourceCount - 2  /* 2 Lines Overhead in each "list" File */
  3348.  
  3349.     r=Close(fTMP)
  3350.     ADDRESS COMMAND 'delete >NIL: 'CheckSourceFile' QUIET'
  3351.   END
  3352.  
  3353.   IF (Open(fTMP,CheckSourceDirs,'read')) THEN
  3354.   DO
  3355.     DirCount=1
  3356.     DO UNTIL (EOF(fTMP))
  3357.      SourceDir.DirCount=ReadLn(fTMP)
  3358.      DirCount=DirCount + 1
  3359.     END
  3360.  
  3361.     DirCount=DirCount - 2  /* 2 Lines Overhead in each "list" File */
  3362.  
  3363.     r=Close(fTMP)
  3364.     ADDRESS COMMAND 'delete >NIL: 'CheckSourceDirs' QUIET'
  3365.   END
  3366. END
  3367.  
  3368. RETURN
  3369.  
  3370. /* -------------- */
  3371. rxLine:
  3372. PARSE ARG TheLine
  3373.  
  3374. r=WriteLn(RexxSCRIPT, TheLine)
  3375. RETURN 1
  3376.  
  3377. /*----------------------------------------------------------------*/
  3378. Create_InitScript:
  3379. PARSE ARG module
  3380.  
  3381. ADDRESS COMMAND 'delete >NIL: "'module'" QUIET'
  3382.  
  3383. IF ~Open(fInit,module,'W') THEN CALL Err_ShowMessage(module)
  3384.  
  3385. r=WriteLn(fInit,'failat 21')
  3386.  
  3387. n=0
  3388.  
  3389. IF ~(Additional_C='') THEN
  3390. DO
  3391.   n=n+1
  3392.   CMD.n='assign C: "'Additional_C'" ADD'
  3393. END
  3394.  
  3395. IF ~(Additional_L='') THEN
  3396. DO
  3397.   n=n+1
  3398.   CMD.n='assign Libs: "'Additional_L'" ADD'
  3399. END
  3400.  
  3401. IF ~(Additional_Libs='') THEN
  3402. DO
  3403.   n=n+1
  3404.   CMD.n='assign Libs: "'Additional_Libs'" ADD'
  3405. END
  3406.  
  3407. IF ~(Additional_Devs='') THEN
  3408. DO
  3409.   n=n+1
  3410.   CMD.n='assign Devs: "'Additional_Devs'" ADD'
  3411. END
  3412.  
  3413. IF ~(Additional_Fonts='') THEN
  3414. DO
  3415.   n=n+1
  3416.   CMD.n='assign Fonts: "'Additional_Fonts'" ADD'
  3417. END
  3418.  
  3419. IF ~(Additional_Locale='') THEN
  3420. DO
  3421.   n=n+1
  3422.   CMD.n='assign Locale: "'Additional_Locale'" ADD'
  3423. END
  3424.  
  3425. IF ~(Additional_Help='') THEN
  3426. DO
  3427.   n=n+1
  3428.   CMD.n='assign Locale: "'Additional_Help'" ADD'
  3429. END
  3430.  
  3431. DO i=1 to n
  3432.   r=WriteLn(fInit,CMD.i)
  3433. END
  3434.  
  3435. r=Close(fInit)
  3436.  
  3437. ADDRESS COMMAND 'execute "'module'"'
  3438.  
  3439. r=WriteLn(LOGFILE,CR' Created and executed StartupScript: "'module'"')
  3440. DO i=1 to n
  3441.    r=WriteLn(LOGFILE,CMD.i)
  3442. END
  3443. CALL LogLine
  3444.  
  3445. r=wdi('if exists "'module'"')
  3446. r=wdi(' echo "*ec*n*n*e[1m Removing*e[0m the Init-Script: *e[1m'module'*e[0m ..."')
  3447. r=wdi(' wait 3')
  3448. r=wdi(' delete "'module'" FORCE')
  3449. r=wdi('endif')
  3450. CALL SpaceNextEntry
  3451. RETURN
  3452. /* ----------------------------------------------- */
  3453. CopyHelp:
  3454. r=ShowMessage('manuals',,,,AppName)
  3455. IF r=1 THEN
  3456. DO
  3457.   InstName=' Online Help '
  3458.   SourceDir='iGuide_root:SYS/Inst_Help'
  3459.   DestDir1='SYS:'
  3460.   DoCheck=1
  3461.   CALL CopyAction
  3462. END
  3463. CALL SpaceNextEntry
  3464. RETURN
  3465. /*----------------------*/
  3466. Do_and_Log:
  3467. CALL WriteLn(LOGFILE,' ')
  3468. CALL WriteLn(LOGFILE,' Executed Commands for 'InstName':')
  3469. CALL WriteLn(LOGFILE,' ')
  3470.  
  3471. DO i=1 to 100
  3472.  IF(CMD.i='CMD.'i) THEN LEAVE
  3473.  
  3474.  TheCommand=LEFT(UPPER(CMD.i),12)
  3475.  IF (~POS('FAILAT',TheCommand)=1 & ~POS('IF ',TheCommand)=1 & ~POS('ELSE',TheCommand)=1 & ~POS('ENDIF',TheCommand)=1 & ~POS('SKIP ',TheCommand)=1 & ~POS('QUIT',TheCommand)=1 & ~POS('EndCLI',TheCommand)=1  ) THEN
  3476.  DO
  3477.   ADDRESS COMMAND CMD.i
  3478.  
  3479.   ResultCommand=RC
  3480.  
  3481.   r=WriteLn(LOGFILE,CMD.i)
  3482.   CMD.i='CMD.'i
  3483.  END
  3484. END
  3485.  
  3486. CALL LogLine
  3487. DROP COMMAND
  3488. RETURN
  3489. /*------------ up to 3 single-button-Messages and last as  ok / exit  message */
  3490. ActionMessage:
  3491. PARSE ARG aMsg,bMsg,cMsg,dMsg
  3492.  
  3493. ra=0
  3494. DO UNTIL ra>0
  3495.  IF ~(aMsg='') THEN ra=ShowMessage(aMsg,,,,AppName)
  3496.  IF ~(bMsg='') THEN ra=ShowMessage(bMsg,,,,AppName)
  3497.  IF ~(cMsg='') THEN ra=ShowMessage(cMsg,,,,AppName)
  3498.  IF ~(dMsg='') THEN ra=ShowMessage(dMsg,,,,AppName)
  3499.  IF ra=0 THEN CALL ExitMe('USER_QUITS')
  3500. END
  3501. aMsg=''
  3502. bMsg=''
  3503. cMsg=''
  3504. dMsg=''
  3505. RETURN ra
  3506. /*--------------------------------------------*/
  3507. ShowMessage:
  3508. PARSE ARG Mesg,ReqPath,ReqFile,PresetString,Parameter1,Parameter2,Parameter3,Parameter4,Parameter5,Parameter6
  3509.  
  3510. DROP Action
  3511. ReqType=""
  3512.  
  3513. MsgFile='iGuide_root:'InstBase'_iGuide/'Language'/'Mesg
  3514. IF (Open(fTMP, MsgFile, 'read')) THEN
  3515. DO
  3516.  ReqType=ReadLn(fTMP)  /* read Requester-Type */
  3517.  
  3518.  Line=ReadLn(fTMP)  /* read Title-Line */
  3519.  CALL Substitutions
  3520.  ReqTitle=Line
  3521.  
  3522.  Line=ReadLn(fTMP)  /* free line after Title */
  3523.  
  3524.  Message=""
  3525.  
  3526.  DO UNTIL EOF(fTMP)
  3527.  
  3528.    Line=ReadLn(fTMP)
  3529.    CALL Substitutions
  3530.  
  3531.    IF POS(">>>", Line) > 0 THEN
  3532.    DO
  3533.      rtBtns=STRIP(Line, 'L', '>')
  3534.      LEAVE
  3535.    END
  3536.    ELSE
  3537.        Message=Message || CR || Line
  3538.  END
  3539.  
  3540.  r=Close(fTMP)
  3541.  
  3542.  IF (Log_exists=1) THEN
  3543.  DO
  3544.   r=WriteLn(LOGFILE,Message)
  3545.   r=WriteLn(LOGFILE,' ')
  3546.   r=WriteLn(LOGFILE,rtBtns)
  3547.   r=WriteLn(LOGFILE,' ')
  3548.  END
  3549. END
  3550. ELSE
  3551.  CALL Err_ShowMessage(MsgFile)
  3552.  
  3553. uReqType=UPPER(ReqType)
  3554.  
  3555. IF (uReqType='MULTI REQUEST') THEN
  3556. DO
  3557.   re=rtezrequest(Message,rtBtns,ReqTitle,PosTags)
  3558.   IF (Log_exists=1) THEN
  3559.   DO
  3560.     r=WriteLn(LOGFILE,' ----> Chosen Button-Nr.: 're)
  3561.     CALL LogLine
  3562.   END
  3563.   RETURN re
  3564. END
  3565.  
  3566. IF (uReqType='GET ONE FILE') THEN
  3567. DO
  3568.   re=rtfilerequest(ReqPath,ReqFile,ReqTitle,rtBtns,ONEFILE_TAG, Files)
  3569.   IF (Log_exists=1) THEN
  3570.   DO
  3571.     r=WriteLn(LOGFILE,' ----> Chosen File: 're)
  3572.     CALL LogLine
  3573.   END
  3574.   RETURN re
  3575. END
  3576.  
  3577. IF (uReqType='GETFILES') THEN
  3578. DO
  3579.   re=rtfilerequest(ReqPath,ReqFile,ReqTitle,rtBtns, FILE_TAGS, Files)
  3580.   IF (Log_exists=1) THEN
  3581.   DO
  3582.     r=WriteLn(LOGFILE,' ----> Chosen Files: 're'...')
  3583.     CALL LogLine
  3584.   END
  3585.   RETURN re
  3586. END
  3587.  
  3588. IF (uReqType='GETPATH') THEN
  3589. DO
  3590.   re=rtfilerequest(ReqPath,,ReqTitle,rtBtns, DIR_TAGS)
  3591.   IF (Log_exists=1) THEN
  3592.   DO
  3593.     r=WriteLn(LOGFILE,' ----> Chosen Path: 're)
  3594.     CALL LogLine
  3595.   END
  3596.   RETURN re
  3597. END
  3598.  
  3599. IF (uReqType='GETSTRING') THEN
  3600. DO
  3601.   re=rtgetstring(PresetString,Message,ReqTitle,rtBtns,GStags,Action)
  3602.   IF (Log_exists=1) THEN
  3603.   DO
  3604.     r=WriteLn(LOGFILE,' ----> Chosen String: 're)
  3605.     r=WriteLn(LOGFILE,' ----> Chosen Button-Nr.: 'Action)
  3606.     CALL LogLine
  3607.   END
  3608.   RETURN re
  3609. END
  3610.  
  3611. IF (uReqType='GETSTRING SIMPLE') THEN
  3612. DO
  3613.   re=rtgetstring(PresetString,Message,ReqTitle,,GStags,Action)
  3614.   IF (Log_exists=1) THEN
  3615.   DO
  3616.     r=WriteLn(LOGFILE,' ----> Chosen String: 're)
  3617.     r=WriteLn(LOGFILE,' ----> Chosen Button-Nr.: 'Action)
  3618.     CALL LogLine
  3619.   END
  3620.   RETURN re
  3621. END
  3622.  
  3623. CALL Err_ShowMessage(MsgFile)  /* Error if arrived here. Quit. */
  3624. RETURN
  3625. /*----------------------------------*/
  3626. Substitutions:
  3627.  
  3628. IF POS("%1", Line) > 0 THEN             /* substitution parameters for each message */
  3629. DO UNTIL POS("%1", Line)=0            /* and per line */
  3630.   parse var Line part1 '%1' part2
  3631.   Line=part1''parameter1''part2
  3632. END
  3633.  
  3634. IF POS("%2", Line) > 0 THEN
  3635. DO UNTIL POS("%2", Line)=0
  3636.   parse var Line part1 '%2' part2
  3637.   Line=part1''parameter2''part2
  3638. END
  3639.  
  3640. IF POS("%3", Line) > 0 THEN
  3641. DO UNTIL POS("%3", Line)=0
  3642.   parse var Line part1 '%3' part2
  3643.   Line=part1''parameter3''part2
  3644. END
  3645.  
  3646. IF POS("%4", Line) > 0 THEN
  3647. DO UNTIL POS("%4", Line)=0
  3648.   parse var Line part1 '%4' part2
  3649.   Line=part1''parameter4''part2
  3650. END
  3651.  
  3652. IF POS("%5", Line) > 0 THEN
  3653. DO UNTIL POS("%5", Line)=0
  3654.   parse var Line part1 '%5' part2
  3655.   Line=part1''parameter5''part2
  3656. END
  3657.  
  3658. IF POS("%6", Line) > 0 THEN
  3659. DO UNTIL POS("%6", Line)=0
  3660.   parse var Line part1 '%6' part2
  3661.   Line=part1''parameter6''part2
  3662. END
  3663. RETURN
  3664. /*----------------------------------*/
  3665. Msg_Con_Log:
  3666. PARSE ARG text
  3667.  
  3668. IF ConStat=0 THEN CALL OpenCon(InstName)
  3669. r=WriteLn(fCon,text)
  3670. r=WriteLn(LOGFILE,text)
  3671. RETURN
  3672. /*----------------------------------*/
  3673. OpenCon:
  3674. PARSE ARG Title
  3675.  
  3676. clr='c'
  3677. CALL CloseCon
  3678. Console=ConsoleType''ConsoleSize'/'Title'/NOCLOSE'
  3679. IF ~OPEN(fCon,Console) THEN CALL Err_ShowMessage(Console)
  3680. r=WriteLn(fCon,clr)
  3681. ConStat=1
  3682. RETURN
  3683. /*----------------------------------*/
  3684. CloseCon:
  3685. IF ConStat=1 THEN
  3686. DO
  3687.  CALL DELAY(100)
  3688.  r=CLOSE(fCon)
  3689. END
  3690. ConStat=0
  3691. RETURN
  3692.  
  3693. /*----------------------------------*/
  3694. Err_ShowMessage:
  3695. PARSE ARG ErrFile
  3696.  
  3697. Message=AppName':' CR CR "Sorry, an error has occured accessing the File" CR CR "    "ErrFile CR CR "... exiting."
  3698. rtBtns='Oh no!'
  3699. Action=rtezrequest(Message,rtBtns,AppName,PosTags)
  3700.  
  3701. CALL ExitMe('EMERGENCY')
  3702.  
  3703. /*-- Break if wrong Directory ---------------- */
  3704. CheckInstallDir:
  3705. PARSE ARG file
  3706.  
  3707. IF ~EXISTS(file) THEN CALL ExitMe('WRONGDIR',file)
  3708. ELSE RETURN
  3709.  
  3710. /* ------------------------- */
  3711. RexxInstallInfo:
  3712.  
  3713. IF EXISTS('ENV:RexxInstalledNow') THEN  /* Rexx Info if needed */
  3714. DO
  3715.    r=ShowMessage('_Rexx_log',,,,AppName)
  3716.    ADDRESS COMMAND 'delete >NIL: ENV:RexxInstalledNow QUIET'
  3717. END
  3718. RETURN
  3719. /* ------------------------- */
  3720. ExistsFile:
  3721. PARSE ARG file
  3722.  
  3723. IF ~EXISTS(file) THEN
  3724.   RETURN 1
  3725. ELSE
  3726.   RETURN 0
  3727.  
  3728. /* ------------------------- */
  3729. BackupFile:
  3730. PARSE ARG bakFile
  3731.  
  3732. n=5
  3733. DO i=1 to n
  3734.  IF EXISTS(bakFile'.'n) THEN
  3735.  DO
  3736.    ADDRESS COMMAND 'copy "'bakFile'" "'bakFile'.'n'" CLONE QUIET'
  3737.    LEAVE i
  3738.  END
  3739.  
  3740.  IF ~EXISTS(bakFile'.'i) THEN
  3741.  DO
  3742.    ADDRESS COMMAND 'copy "'bakFile'" "'bakFile'.'i'" CLONE QUIET'
  3743.    LEAVE i
  3744.  END
  3745. END
  3746. RETURN
  3747. /* ------------------------- */
  3748. FindTextInFile:
  3749. PARSE ARG String,File
  3750.  
  3751. tmpF='ENV:SearchR_'ProcessNumber
  3752. ADDRESS COMMAND 'search >'tmpF' from "'File'" "'String'"'
  3753. r=UPPER(MyGetENV(tmpF))
  3754. ADDRESS COMMAND 'delete >NIL: 'tmpF' QUIET'
  3755.  
  3756. IF (POS(UPPER(String),r)=0) THEN RETURN 0
  3757. ELSE RETURN 1
  3758. /* ------------------------- */
  3759. MyGetENV:     PROCEDURE
  3760. PARSE ARG name
  3761.  
  3762. TheFile="ENV:" || name
  3763. IF (Open(fTMP, TheFile, 'read')) THEN
  3764. DO
  3765.   ENVvalue=ReadLn(fTMP)
  3766.   r=Close(fTMP)
  3767. END
  3768. ELSE ENVvalue="???"
  3769.  
  3770. RETURN ENVvalue
  3771. /* ------------------------- */
  3772. InitVersion:
  3773.  
  3774. HelpDir='SYS:'InstBase'/Help/'
  3775.  
  3776. IF ~EXISTS('SYS:'InstBase) THEN ADDRESS COMMAND 'makedir SYS:'InstBase
  3777. IF ~EXISTS('SYS:'InstBase'/Help') THEN ADDRESS COMMAND 'makedir SYS:'InstBase'/Help'
  3778.  
  3779. User_ver=0
  3780. IF (Open(fTMP,VersionLog,'read')) THEN
  3781. DO
  3782.   User_ver=Value(ReadLn(fTMP))
  3783.   r=Close(fTMP)
  3784. END
  3785.  
  3786. InstB_orig=InstBase
  3787. IF User_ver>0 THEN
  3788. DO
  3789.  InstModule=InstModule'_upd'
  3790.  InstBase=InstBase'_upd'
  3791. END
  3792.  
  3793. CALL CreateLogFile
  3794.  
  3795. InstBase=InstB_orig
  3796. CALL Create_DeInstallScript
  3797.  
  3798. RETURN
  3799. /* ------------------------- */
  3800. CreateLogFile:
  3801.  
  3802. DeInstDir='SYS:Storage/DeInstall'
  3803. DeInstScrName=InstModule'_ex'
  3804.  
  3805. IF ~EXISTS('SYS:Storage') THEN ADDRESS COMMAND 'makedir SYS:Storage'
  3806. IF ~EXISTS(DeInstDir) THEN ADDRESS COMMAND 'makedir 'DeInstDir
  3807.  
  3808. UndoBak=DeInstDir'/'DeInstScrName'.bu'
  3809.  
  3810. /* ---- Create MainLog (a AmigaGuide-file) */
  3811.  
  3812. MainLog=HelpDir''InstBase'_MainLog.log'
  3813. TempLog='T:'InstBase'_MainLog.log'
  3814. separator='____________________________________________________________________'
  3815.  
  3816. IF ~EXISTS(MainLog) THEN
  3817. DO
  3818.  WasNoMainLog=1
  3819.  
  3820.  IF ~Open(fTMP,TempLog,'W') THEN CALL Err_ShowMessage(TempLog)
  3821.  
  3822.  r=WriteLn(fTMP, '@database "iGuide!_Installer_Logfile"')
  3823.  r=WriteLn(fTMP, " ")
  3824.  r=WriteLn(fTMP, "@author iGuide!_Installer, automatic generated file.")
  3825.  r=WriteLn(fTMP, "@(c) Tom Neidhardt, 1999")
  3826.  r=WriteLn(fTMP, "@$VER: iGuide!_Installer 3.0")
  3827.  r=WriteLn(fTMP, " ")
  3828.  r=WriteLn(fTMP, "@font helvetica.font 13")
  3829.  r=WriteLn(fTMP, "@wordwrap")
  3830.  r=WriteLn(fTMP, " ")
  3831.  r=WriteLn(fTMP, " ")
  3832.  r=WriteLn(fTMP, '@Node Main "Installation Logbook       iGuide!_Installer, © 1999 by Tom Neidhardt"')
  3833.  r=WriteLn(fTMP, " ")
  3834.  r=WriteLn(fTMP, '    @{b}'InstBase' Installation logbook@{ub}')
  3835.  r=WriteLn(fTMP, " ")
  3836.  r=WriteLn(fTMP, "        "Author)
  3837.  r=WriteLn(fTMP, separator)
  3838.  r=WriteLn(fTMP, " ")
  3839.  r=WriteLn(fTMP, ".")
  3840.  
  3841.  CALL Close(fTMP)
  3842.  
  3843.  ADDRESS COMMAND
  3844.  'copy "'TempLog'" "'MainLog'" CLONE QUIET'
  3845.  'delete >NIL: "'TempLog'" QUIET'
  3846. END
  3847.  
  3848. /* ---- Create SubLog, a simple ASCII-file, accessable by MainLog */
  3849.  
  3850. SubLog=HelpDir''InstModule'_SubLog.log'
  3851. IF ~Open(LOGFILE,SubLog,'W') THEN CALL Err_ShowMessage(SubLog)
  3852.  
  3853. Message=CR 'Protocol:  'AppName'       'Today
  3854. Message=Message || CR || separator || CR CR CR
  3855. r=WriteLn(LOGFILE,Message)
  3856.  
  3857. ADDRESS COMMAND 'delete >NIL: ENV:'ProcessNumber'_date QUIET'
  3858. Log_exists=1
  3859.  
  3860. /* ---- Enhance a MainLog-Link for Sublog */
  3861.  
  3862. IF ~Open(MAINFILE,MainLog,'R') THEN CALL Err_ShowMessage(MainLog)
  3863. IF ~Open(fTMP,TempLog,'W') THEN CALL Err_ShowMessage(TempLog)
  3864.  
  3865. line=' '
  3866. LastEntry=0
  3867. NewEntry=1
  3868. FirstNewLine='      @{"   " link 'SubLog'/main}  Show the Install-Log for @{b}'InstModule'@{ub}'
  3869. SecondLine='      @{"   " SYSTEM "NewShell CON:56/'ReqTE'/584/150/DeInstalling_bak/AUTO/NOCLOSE FROM 'UndoBak'"}  Remove all 'InstModule' Installation-Backups'
  3870.  
  3871. DO UNTIL EOF(MAINFILE)
  3872.  line=ReadLn(MAINFILE)
  3873.  
  3874.  IF (line=FirstNewLine) THEN NewEntry=0
  3875.  IF (LEFT(line,1)='.') THEN LastEntry=1
  3876.  IF (LastEntry=0) THEN r=WriteLn(fTMP, line)
  3877. END
  3878.  
  3879. IF (NewEntry=1) THEN
  3880. DO
  3881.  r=WriteLn(fTMP,' ')
  3882.  r=WriteLn(fTMP,FirstNewLine''CR''SecondLine)
  3883. END
  3884.  
  3885. r=WriteLn(fTMP,'.')
  3886. r=WriteLn(fTMP,' ')
  3887. r=WriteLn(fTMP,separator)
  3888. r=WriteLn(fTMP,'@ENDNODE')
  3889.  
  3890. r=Close(fTMP)
  3891. r=Close(MAINFILE)
  3892.  
  3893. ADDRESS COMMAND
  3894. 'copy "'TempLog'" "'MainLog'" CLONE QUIET'
  3895. 'delete >NIL: "'TempLog'" QUIET'
  3896.  
  3897. RETURN
  3898. /* ----------- */
  3899. LogLine:
  3900. r=WriteLn(LOGFILE,' ')
  3901. r=WriteLn(LOGFILE,'>>> -------------------------------------------------------------------------------------')
  3902. r=WriteLn(LOGFILE,' ')
  3903. RETURN
  3904. /*-------------------------------------------------------*/
  3905. Create_DeInstallScript:
  3906. Action=ShowMessage('_DeInstaller',,,,AppName)
  3907. DeInstStarter=InstModule
  3908.  
  3909. ADDRESS COMMAND
  3910. 'delete >NIL: "'DeInstDir'/'DeInstScrName'#?" FORCE QUIET'
  3911. 'echo >'DeInstDir'/'DeInstStarter '"failat 30"'
  3912. 'echo >>'DeInstDir'/'DeInstStarter '"stack 20000"'
  3913. 'echo >>'DeInstDir'/'DeInstStarter '"copy 'DeInstDir'/'DeInstScrName'#? T: CLONE QUIET"'
  3914. 'echo >>'DeInstDir'/'DeInstStarter '"run >NIL: execute T:'DeInstScrName'"'
  3915.  
  3916. IconPath='iGuide:init'
  3917. Icon='DeInst_.info'
  3918. ADDRESS COMMAND 'copy "'IconPath'/'Icon'" "'DeInstDir'/'DeInstStarter'.info"'
  3919.  
  3920. TheFile=DeInstDir'/'DeInstScrName
  3921. IF ~Open(fDeInst, TheFile, 'W') THEN CALL Err_ShowMessage(TheFile)
  3922.  
  3923. r=wdi('failat 30')
  3924. r=wdi('cd T:')
  3925. r=wdi('copy EASys!_bin:swipe T: CLONE QUIET')
  3926. r=wdi('copy EASys!_bin:CLIexchange T: CLONE QUIET')
  3927. r=wdi('copy EASys!_rexx:remoteed.rexx T: CLONE QUIET')
  3928. r=wdi('newshell CON:56/'ReqTE'/584/240/EASys!_DeInstaller/CLOSE FROM T:'DeInstScrName'.0')
  3929. CALL SpaceNextEntry
  3930. CALL Close(fDeInst)
  3931.  
  3932. TheFile=DeInstDir'/'DeInstScrName'.0'
  3933. IF EXISTS(TheFile) THEN ADDRESS COMMAND 'delete >NIL: "'TheFile'" QUIET'
  3934. IF ~Open(fDeInst, TheFile, 'W') THEN CALL Err_ShowMessage(TheFile)
  3935.  
  3936. DeInstOpen=1
  3937. r=wdi('failat 30')
  3938. r=wdi('stack 30000')
  3939. r=wdi('cd T:')
  3940. r=wdi('echo "*ec*n*n*e[1m This is the DeInstall-Script for 'InstModule'*e[0m"')
  3941. r=wdi('echo " It will guide you by dialog through de-installation."')
  3942. r=wdi('echo " You may always stop actions by pressing <Ctrl><c>"')
  3943. r=wdi('echo " and you may stop the whole script by pressing <Ctrl><d>"')
  3944. r=wdi('echo "*n [y/n] marks mean, that  y=Yes  n=[ENTER]=No."')
  3945. r=wdi('ask "*e[1m Continue? [y/n] [n]*e[0m"')
  3946. r=wdi('if not warn')
  3947. r=wdi(' EndCLI')
  3948. r=wdi('endif')
  3949. CALL SpaceNextEntry
  3950.  
  3951. /* ------------------- */
  3952. IF ~Open(BakDeInst, UndoBak, 'W') THEN CALL Err_ShowMessage(UndoBak)
  3953.  
  3954. r=WriteLn(BakDeInst,'failat 30')
  3955. r=WriteLn(BakDeInst,'echo "*ec*n*n*e[1m Remove*e[0m  all Installation File-Backups:*e[1m #?'TimeStamp'*e[0m ?"')
  3956. r=WriteLn(BakDeInst,'echo " Be aware, that you or the DeInstaller may not restore"')
  3957. r=WriteLn(BakDeInst,'echo " replaced files in case of removing!" NOLINE')
  3958. r=WriteLn(BakDeInst,'ask " [y/n] [n]"')
  3959. r=WriteLn(BakDeInst,'if not warn')
  3960. r=WriteLn(BakDeInst,' EndCLI')
  3961. r=WriteLn(BakDeInst,'endif')
  3962. r=WriteLn(BakDeInst,'wait 4')
  3963.  
  3964. r=WriteLn(LOGFILE,CR' ==> Created the main DeInstall-Script: "'TheFile'"')
  3965. r=WriteLn(LOGFILE,CR' ==> Created DeInstall-Script for removing backed-up Files: "'UndoBak'"')
  3966. RETURN
  3967. /*---------------------*/
  3968. SpaceNextEntry:
  3969. r=wdi('wait 2')
  3970. r=wdi('echo "*ec*n*n"')
  3971. r=wdi(' ')
  3972. RETURN
  3973. /* -- wdi, write deinstaller line -- */
  3974. wdi:
  3975. PARSE ARG TheLine
  3976. r=WriteLn(fDeInst, TheLine)
  3977. RETURN 1
  3978. /*---------------------*/
  3979. ExecScript:
  3980. PARSE ARG script,scriptarg
  3981.  
  3982. IF ~EXISTS(script) THEN CALL Err_ShowMessage(script)
  3983.  
  3984. CALL Close(LOGFILE)
  3985.  
  3986. ADDRESS COMMAND
  3987. 'echo >>"'SubLog'" "*n*n*e[1m ==> Executing  'script'*e[0m  with argument: 'scriptarg'*n"'
  3988. 'type >>"'SubLog'" "'script'"'
  3989. 'execute "'script'" 'scriptarg
  3990.  
  3991. IF ~Open(LOGFILE,SubLog,'A') THEN CALL Err_ShowMessage(SubLog)
  3992. RETURN
  3993. /* ------------------- */
  3994. End_DeInstScripts:
  3995. IF(WasNoMainLog=1) THEN
  3996. DO
  3997.  r=wdi('if exists 'MainLog)
  3998.  r=wdi(' echo "  Removing MainLog 'MainLog'*n"')
  3999.  r=wdi(' delete >NIL: "'MainLog'" QUIET')
  4000.  r=wdi('endif')
  4001.  CALL SpaceNextEntry
  4002. END
  4003.  
  4004. r=wdi('if exists 'SubLog)
  4005. r=wdi(' echo "  Removing 'SubLog'*n"')
  4006. r=wdi(' delete >NIL: "'SubLog'" QUIET')
  4007. r=wdi('endif')
  4008. CALL SpaceNextEntry
  4009.  
  4010. r=wdi('if exists 'UndoBak)
  4011. r=wdi(' echo "  Removing  'UndoBak'*n"')
  4012. r=wdi(' delete >NIL: "'UndoBak'" QUIET')
  4013. r=wdi('endif')
  4014. CALL SpaceNextEntry
  4015.  
  4016. r=WriteLn(BakDeInst,'echo "*n*n All Backups  #?'TimeStamp'  removed from system."')
  4017. r=WriteLn(BakDeInst,'wait 5')
  4018. r=WriteLn(BakDeInst,'EndCLI')
  4019.  
  4020. r=wdi('echo "*e[1m Removing all 'InstModule' DeInstall-Scripts now ...*e[0m"')
  4021. r=wdi('wait 4')
  4022. r=wdi('delete "'DeInstDir'/'DeInstScrName'#?"')
  4023. r=wdi('delete T:'DeInstScrName'#? QUIET')
  4024. r=wdi('delete "'DeInstDir'/'InstBase'#?"')
  4025. r=wdi('delete >NIL: "'DeInstDir'" QUIET')
  4026. CALL SpaceNextEntry
  4027.  
  4028. r=wdi(' ')
  4029. r=wdi('wait 2')
  4030. r=wdi('echo "*ec*n*n 'InstApp' De-Installation completed.*n*n Exiting in 5 secs."')
  4031. r=wdi('wait 5')
  4032. r=wdi('EndCLI')
  4033. RETURN
  4034. /*----------------------------------------------------------------*/
  4035. ExitMe:
  4036. PARSE ARG exitcase,addinfo
  4037. exitcase=UPPER(exitcase)
  4038.  
  4039. CALL PRAGMA('DIRECTORY','T:')
  4040.  
  4041. IF DeInstOpen=1 THEN CALL End_DeInstScripts
  4042. IF exitcase='WRONGDIR' THEN r=ShowMessage('_StartAgain',,,,AppName,addinfo)
  4043. IF exitcase='DESTFULL' THEN r=ShowMessage('_CopyDestFull',,,,AppName,ActualFile,Code,Target)
  4044.  
  4045. IF exitcase='USER_QUITS' THEN
  4046. DO
  4047.  Action=ShowMessage('_QuitInstall',,,,AppName)
  4048.  IF Action=0 THEN RETURN
  4049. END
  4050.  
  4051. /* in any case make sure all opened files are closed */
  4052. CALL Close(BakDeInst)
  4053. CALL Close(fDeInst)
  4054. CALL Close(fStartup)
  4055. CALL Close(LOGFILE)
  4056. CALL Close(fTMP)
  4057.  
  4058. /* reconstruct user's private MultiView settings */
  4059. IF EXISTS('ENV:Multiview.'TimeStamp) THEN
  4060. DO
  4061.  ADDRESS COMMAND
  4062.  'delete >NIL: ENVARC:MultiView FORCE ALL QUIET'
  4063.  'rename ENVARC:MultiView.'TimeStamp' ENVARC:MultiView'
  4064.  'delete >NIL: ENV:MultiView FORCE ALL QUIET'
  4065.  'rename ENV:MultiView.'TimeStamp' ENV:MultiView'
  4066. END
  4067. ELSE ADDRESS COMMAND 'delete >NIL: ENV:MultiView FORCE ALL QUIET'
  4068.  
  4069. IF exitcase='EMERGENCY' | exitcase='WRONGDIR' | exitcase='DESTFULL' | exitcase='USER_QUITS' THEN 
  4070.    EXIT 0
  4071.  
  4072. guide=HelpDir''Language'/'InstModule'.guide'
  4073. IF EXISTS(guide) THEN
  4074. DO
  4075.  CALL DELAY(200)
  4076.  ADDRESS COMMAND 'run >NIL: multiview "'guide'"'
  4077. END
  4078. EXIT 0
  4079.