home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 11 Util / 11-Util.zip / iniedi12.zip / INIEDIT.ZIP / INIinst.cmd < prev    next >
OS/2 REXX Batch file  |  2001-04-05  |  7KB  |  216 lines

  1. /* INIinst - Install / UnInstall for INI tools */
  2.  
  3. PARSE ARG action
  4. IF RxFuncQuery('SysLoadFuncs') THEN DO
  5.     CALL RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
  6.     CALL SysLoadFuncs
  7. END
  8. CALL SysCls
  9. action = TRANSLATE(LEFT(action,1))
  10. SELECT
  11.     WHEN action = 'I' THEN CALL InstallMe
  12.     WHEN action = 'U' THEN CALL UnInstallMe
  13.     OTHERWISE CALL WhatAction
  14. END
  15. Exit /* End of INIinst.cmd */
  16.  
  17. /* WhatAction - no action selected */
  18.  
  19. WhatAction:     PROCEDURE
  20.  
  21. CALL SysCls
  22. SAY 'Please enter installation parameter (I=Install, U=UnInstall, other=Exit):'
  23. PARSE PULL action
  24. SELECT
  25.     WHEN TRANSLATE(LEFT(action,1)) = 'I' THEN CALL InstallMe
  26.     WHEN TRANSLATE(LEFT(action,1)) = 'U' THEN CALL UnInstallMe
  27.     OTHERWISE CALL NoAction 'Installation failed.'
  28. END
  29. RETURN /* End of WhatAction */
  30.  
  31. /* NoAction - abort Install */
  32.  
  33. NoAction:   PROCEDURE
  34.  
  35. CALL SysCls
  36. PARSE ARG noinstmsg
  37. SAY noinstmsg
  38. SAY 'Press Enter to exit ...'
  39. PULL answer
  40. CALL SysCls
  41. Exit /* End of NoAction */
  42.  
  43. /* InstallMe - install INI tools */
  44.  
  45. InstallMe:  PROCEDURE
  46.  
  47. toolname = 'INItools 1.2.0'
  48. prgname = 'INI editor 1.2.0'
  49. chkfiles = 'INIedit.exe Inibmp32.dll ENGLISH.INI'
  50. IF RIGHT(Directory(),2) = ':\' THEN DO
  51.     SAY 'Problem! '||prgname||' can not be installed in root directory.'
  52.     SAY 'Create directory for '||prgname||', copy files: '||chkfiles||' there and start this procedure again.'
  53.     SAY 'Press Enter to exit ...'
  54.     PULL answer
  55.     Exit
  56. END
  57.  
  58. CALL SysCls
  59. SAY 'Welcome to '||toolname||' Installation procedure!'
  60. SAY 'Your files are in directory: '||Directory()
  61. SAY 'This procedure will:'
  62. SAY '- Create Folder "OS/2 System Tools" on your Desktop (if folder does not exist),'
  63. SAY '- Create Program objects for '||prgname||','
  64. SAY '- Associate *.INI files with '||prgname||' (option),'
  65. SAY '- Add '||toolname||' specific entries in OS2.INI file - App ToolsByGoran.'
  66. SAY 'Press "Y" (and Enter) to start Installation, Enter to exit...'
  67. PARSE PULL answer
  68.  
  69. IF TRANSLATE(LEFT(answer,1)) <> "Y" THEN DO
  70.     CALL NoAction 'Installation aborted'
  71. END
  72.  
  73. SAY ' '
  74. SAY 'Checking files:'
  75. DO i = 1 TO WORDS(chkfiles)
  76.     CALL SysFiletree Directory()||'\'||WORD(chkfiles,i), 'chkfile', 'FO'
  77.     SELECT
  78.     WHEN chkfile.0 = 1 THEN SAY '- '||LEFT(WORD(chkfiles,i),12)||' - OK'
  79.     OTHERWISE CALL NoAction LEFT(WORD(chkfiles,i),12)||' - Missing file. Installation failed!'
  80.     END
  81. END
  82.  
  83. SAY ' '
  84. SAY 'Writing entries to OS2.INI'
  85. dummy = SysIni('USER','ToolsByGoran','INItool120WorkDir',Directory())
  86. SAY 'Working directory - '||Rc1(dummy)
  87. dummy = SysIni('USER','ToolsByGoran','INItool120INIfile',Directory()||'\INITOOLS.INI')
  88. SAY 'INI file - '||Rc1(dummy)
  89.  
  90. SAY ' '
  91. SAY 'Writing default values to INITOOLS.INI'
  92. CALL SysIni 'INITOOLS.INI', 'Host', '127.0.0.1', '8000'
  93. CALL SysIni 'INITOOLS.INI', 'Language', 'ENGLISH', 'English.inf'
  94. CALL SysIni 'INITOOLS.INI', 'General', 'CurrHost', '127.0.0.1'
  95. CALL SysIni 'INITOOLS.INI', 'General', 'CurrLang', 'ENGLISH'
  96. CALL SysIni 'INITOOLS.INI', 'General', 'FastHex', '1'
  97. CALL SysIni 'INITOOLS.INI', 'General', 'FileList', '1'
  98. CALL SysIni 'INITOOLS.INI', 'General', 'SafeMode', '1'
  99. CALL SysIni 'INITOOLS.INI', 'General', 'ShowAll', '1'
  100. CALL SysIni 'INITOOLS.INI', 'General', 'OnExit', '1'
  101. CALL SysIni 'INITOOLS.INI', 'General', 'PosEdit', '50 20'
  102. CALL SysIni 'INITOOLS.INI', 'General', 'Size', '550 460'
  103. CALL SysIni 'INITOOLS.INI', 'General', 'FontP', '9.WarpSans'
  104. CALL SysIni 'INITOOLS.INI', 'General', 'FontM', '10.System VIO'
  105.  
  106. SAY 'Writing INI files to database'
  107. CALL SysIni 'INITOOLS.INI', 'DataBase', Directory()||'\INITOOLS.INI', 'OS2'
  108. CALL SysIni 'INITOOLS.INI', 'DataBase', Directory()||'\ENGLISH.INI', 'OS2'
  109. CALL SysIni 'INITOOLS.INI', 'DataBase', VALUE('USER_INI',,'OS2ENVIRONMENT'), 'OS2'
  110. CALL SysIni 'INITOOLS.INI', 'DataBase', VALUE('SYSTEM_INI',,'OS2ENVIRONMENT'), 'OS2'
  111.  
  112. SAY ' '
  113. assocme = 0
  114. SAY 'Do you want to associate *.INI files with '||prgname||'? (Y/N)'
  115. PARSE PULL answer
  116. IF TRANSLATE(answer) = 'Y' THEN DO
  117.     assocme = 1
  118. END
  119.  
  120. SAY ' '
  121. InstallDir = Directory()
  122. WorkDir = Directory()
  123.  
  124. FoldTitle='OS/2 System Tools'
  125. Icon1=Directory()||'\Folder1.ico'
  126. Icon2=Directory()||'\Folder2.ico'
  127. Icon='ICONFILE='Icon1||';ICONNFILE=1,'||Icon2
  128. Setup='OBJECTID=<GISYSTOOLS_FOLD>;'||Icon||''
  129. Action = 'U'
  130. dummy = SysCreateObject('WPFolder',FoldTitle,'<WP_DESKTOP>',Setup,Action)
  131. SAY 'Creating '||FoldTitle||' Folder - '||Rc2(dummy)
  132.  
  133. FoldTitle='Help'
  134. Setup='OBJECTID=<GISYSTOOLS_HELP>'
  135. Action = 'U'
  136. dummy = SysCreateObject('WPFolder',FoldTitle,'<GISYSTOOLS_FOLD>',Setup,Action)
  137. SAY 'Creating '||FoldTitle||' Folder - '||Rc2(dummy)
  138.  
  139. ProgTitle = prgname
  140. EXE = 'INIedit.exe'
  141. ICO = 'INIedit.ico'
  142. Setup = 'OBJECTID=<INIEDIT120_PROGRAM>;EXENAME='InstallDir'\'EXE';ICONFILE='InstallDir'\'ICO';STARTUPDIR='WorkDir''
  143. IF assocme = 1 THEN DO
  144.     Setup = 'OBJECTID=<INIEDIT120_PROGRAM>;EXENAME='InstallDir'\'EXE';ASSOCFILTER=*.INI;ICONFILE='InstallDir'\'ICO';STARTUPDIR='WorkDir''
  145. END
  146. Action = 'U'
  147. dummy = SysCreateObject('WPProgram',ProgTitle,'<GISYSTOOLS_FOLD>',Setup,Action)
  148. SAY 'Creating '||prgname||' Program object - '||Rc2(dummy)
  149.  
  150. ProgTitle = toolname||'^English manual'
  151. EXE = 'View.exe'
  152. INF = 'English.inf'
  153. Setup = 'OBJECTID=<INITOOL120_HENG>;EXENAME='EXE';PARAMETERS='InstallDir'\'INF';STARTUPDIR='WorkDir''
  154. Action = 'U'
  155. dummy = SysCreateObject('WPProgram',ProgTitle,'<GISYSTOOLS_HELP>',Setup,Action)
  156. SAY 'Creating '||prgname||' English manual - '||Rc2(dummy)
  157.  
  158. SAY ' '
  159. SAY 'Installation finished! Press Enter to exit ...'
  160. PULL answer
  161. CALL SysCls
  162. RETURN /* End of InstallMe */
  163.  
  164. /* UnInstallMe - uninstall INI tools */
  165.  
  166. UnInstallMe: PROCEDURE
  167.  
  168. prgname = 'INI tools 1.2.0'
  169. CALL SysCls
  170. SAY 'This is '||prgname||' UnInstallation procedure!'
  171. SAY 'Your files are in directory: '||Directory()
  172. SAY 'This procedure will:'
  173. SAY '- Remove '||prgname||' specific entries in OS2.INI file, App ToolsByGoran.'
  174. SAY '- Destroy '||prgname||' Program object'
  175. SAY 'Press "Y" (and Enter) to start UnInstall, any other key to exit...'
  176. PULL answer
  177. IF answer <> "Y" THEN DO
  178.     CALL NoAction 'UnInstall terminated.'
  179. END
  180. SAY ' '
  181. SAY 'Removing entries from OS2.INI'
  182. CALL SysIni 'USER','ToolsByGoran','INItool120lWorkDir','DELETE:'
  183. CALL SysIni 'USER','ToolsByGoran','INItool120INIfile','DELETE:'
  184. SAY ' '
  185. SAY 'Destroying Program object'
  186. CALL SysDestroyObject '<INITOOL120_HENG>'
  187. CALL SysDestroyObject '<INITOOL120_PROGRAM>'
  188. SAY ' '
  189. SAY 'UnInstallation complete.'
  190. SAY 'You can delete files in directory '||Directory()
  191. SAY 'To install '||prgname||' again, start INIinst I. Press Enter to exit...'
  192. PULL answer
  193. RETURN /* End of UnInstallMe */
  194.  
  195. /* Rc1 - return code - SysIni */
  196.  
  197. Rc1:        PROCEDURE
  198.  
  199. PARSE ARG rcSysIni
  200. SELECT
  201.     WHEN rcSysIni = 'ERROR:' THEN rc1 = 'Error writing to INI file!'
  202.     OTHERWISE rc1 = 'OK'
  203. END
  204. RETURN rc1 /* End of Rc1 */
  205.  
  206. /* Rc2 - return code - SysCreateObject */
  207.  
  208. Rc2:        PROCEDURE
  209.  
  210. PARSE ARG rcSysCreateObject
  211. SELECT
  212.     WHEN rcSysIni = 0 THEN rc2 = 'Error'
  213.     OTHERWISE rc2 = 'OK'
  214. END
  215. RETURN rc2 /* End of Rc2 */
  216.