home *** CD-ROM | disk | FTP | other *** search
/ ftp.rainsoft.? / ftp.rainsoft.zip / rainsoft / win95 / tmate42.exe / TMOS2.CMD < prev    next >
OS/2 REXX Batch file  |  1995-06-14  |  5KB  |  176 lines

  1. /* TMOS2.CMD */
  2. /* Create Telemate program object on OS/2 desktop and modify TM.CFG */
  3. /* Marko Kohtala 1993-07-13 */
  4.  
  5. /* For easiest installation, put this file in the same directory as the 
  6.    Telemate executable and configuration files before you run it.
  7.  
  8.    To run this file, just type the name of this file to the OS/2 command 
  9.    line or double click on it's icon.
  10. */
  11.  
  12.  
  13. /* Get the operating system and path to this REXX file */
  14. PARSE SOURCE operSystem . sourceFile
  15.  
  16. IF \(operSystem = "OS/2")
  17. THEN DO
  18.   SAY "This file is for OS/2 only"
  19.   EXIT
  20. END
  21.  
  22. '@ECHO OFF'
  23.  
  24. /* Load all RexxUtil functions */
  25. CALL rxfuncadd 'sysloadfuncs', 'rexxutil', 'sysloadfuncs'
  26. CALL sysloadfuncs
  27.  
  28. CALL SysCls
  29. SAY "*************************************************************************"
  30. SAY "*                                                                       *"
  31. SAY "*                    TELEMATE OS/2 INSTALL PROGRAM                      *"
  32. SAY "*                                                                       *"
  33. SAY "*************************************************************************"
  34. SAY ""
  35.  
  36. /* Extract the complete path to directory where TMOS2.CMD is */
  37. TMdir = FILESPEC("drive", sourceFile)FILESPEC("path", sourceFile)
  38.  
  39. /* Check to see if TM.EXE is in the same directory */
  40. CALL SysFileTree TMdir"TM.EXE", 'file', 'F'
  41. IF file.0 = 0
  42. THEN DO
  43.   SAY "Telemate not found in the same directory as",
  44.       FILESPEC("name", sourceFile)
  45.   /* Ask user for right path untill TM.EXE found or user gives no path */
  46.   DO UNTIL \(file.0 = 0)
  47.     SAY ""
  48.     SAY "Enter full path to Telemate files or just press ENTER to exit"
  49.     PULL TMdir
  50.     IF TMdir = ""
  51.     THEN EXIT
  52.     IF (FILESPEC("drive", TMdir) = "") | (FILESPEC("path", TMdir) = "")
  53.     THEN SAY 'You must give full path in format "d:\path\"'
  54.     ELSE DO
  55.       IF \(SUBSTR(TMdir, length(TMdir), 1) = "\" )
  56.       THEN TMdir = TMdir"\"
  57.       CALL SysFileTree TMdir"TM.EXE", 'file', 'F'
  58.       IF file.0 = 0
  59.       THEN SAY "Can not find" TMdir"TM.EXE - please give the right directory"
  60.     END
  61.   END
  62.   SAY ""
  63. END
  64.  
  65. progtype = ""
  66. DO UNTIL \(progtype = "")
  67.   CALL CHAROUT , "Do you want Telemate to be Windowed or Full Screen (W/F) ? "
  68.   PULL answer
  69.   IF SUBSTR(answer, 1, 1) = "W"
  70.   THEN progtype = WINDOWEDVDM
  71.   IF SUBSTR(answer, 1, 1) = "F"
  72.   THEN progtype = VDM
  73. END
  74.  
  75. setup = 'PROGTYPE='progtype';EXENAME='TMdir'TM.EXE;STARTUPDIR='TMdir';'
  76. setup = setup'SET DOS_BACKGROUND_EXECUTION=1;SET INT_DURING_IO=1;'
  77. setup = setup'SET COM_RECEIVE_BUFFER_FLUSH=NONE;SET COM_HOLD=1;'
  78. setup = setup'SET IDLE_SECONDS=0;SET VIDEO_WINDOW_REFRESH=2;'
  79. setup = setup'ICONFILE 'TMdir'TMOS2.ICO;'
  80.  
  81. CALL CHAROUT , "Creating Telemate object... "
  82. result = SysCreateObject('WPProgram', 'Telemate', '<WP_DESKTOP>', setup)
  83.  
  84. IF result = 0
  85. THEN DO
  86.   SAY ""
  87.   SAY "Can not create! Perhaps there already is a Telemate object."
  88.   CALL CHAROUT , "Want to update the existing object (Y/N) ? "
  89.   PULL answer
  90.   IF \(SUBSTR(answer, 1, 1) = "Y")
  91.   THEN EXIT
  92.   result = SysCreateObject('WPProgram', 'Telemate', '<WP_DESKTOP>', setup, "update")
  93.   IF result = 0
  94.   THEN DO
  95.     SAY "Still can not create!"
  96.     EXIT
  97.   END
  98. END
  99.  
  100. SAY "Done!"
  101. SAY ""
  102.  
  103. tmcfg = 0
  104.  
  105. CALL SysFileTree TMdir"TM.CFG", 'file', 'F'
  106. IF file.0 = 0
  107. THEN DO
  108.   SAY "TM.CFG not found for automatic modification of settings for OS/2."
  109.   SAY ""
  110. END
  111. ELSE DO
  112.   CALL CHAROUT , "Is it OK to modify TM.CFG Telemate configuration file (Y/N) ? "
  113.   PULL answer
  114.   IF SUBSTR(answer, 1, 1) = "Y"
  115.   THEN DO
  116.     /* Modify configuration file */
  117.     cfgfile = TMdir"TM.CFG"
  118.     oldcfgfile = SysTempFileName(TMdir"TM.???")
  119.     'copy' cfgfile oldcfgfile '> NUL'
  120.     CALL ON HALT NAME trapProg
  121.     CALL SysFileDelete cfgfile
  122.     IF \(result = 0)
  123.     THEN DO
  124.       SAY "Can not delete old configuration!"
  125.       EXIT
  126.     END
  127.     DO WHILE LINES(oldcfgfile)
  128.       line = LINEIN(oldcfgfile)
  129.       PARSE VALUE line WITH variable '=' value
  130.       SELECT
  131.         WHEN variable = "MouseType"
  132.           THEN line = variable'=MSMouse'
  133.         WHEN variable = "DirTelemate"
  134.           THEN line = variable'="'TMdir'"'
  135.         OTHERWISE
  136.           NOP
  137.       END
  138.       IF \(LINEOUT(cfgfile, line) = 0)
  139.       THEN DO
  140.         SAY "Error writing configuration file"
  141.         CALL restoreOrig
  142.         EXIT
  143.       END
  144.     END
  145.     CALL LINEOUT cfgfile
  146.     CALL LINEOUT oldcfgfile
  147.     CALL OFF HALT
  148.     SAY cfgfile "modified, original in" oldcfgfile"."
  149.     SAY ""
  150.     tmcfg = 1
  151.   END
  152. END
  153.  
  154. IF tmcfg = 0
  155. THEN DO
  156.   SAY "You should verify your mouse is set to MicroSoft."
  157.   SAY ""
  158. END
  159.  
  160. SAY "HINT: If you have trouble downloading in background, change MAXWAIT"
  161. SAY "to 1 in CONFIG.SYS."
  162.  
  163. EXIT
  164.  
  165. trapProg:
  166.   /* User pressed Ctrl-C while TM.CFG was not finished:
  167.      Tell user about it, close the files and copy the original back on it.
  168.   */
  169.   SAY "Aborted while TM.CFG not finished!"
  170. restoreOrig:
  171.   SAY "Restoring the original" cfgfile
  172.   CALL LINEOUT cfgfile
  173.   CALL LINEOUT oldcfgfile
  174.   'copy' oldcfgfile cfgfile ' > NUL'
  175.   EXIT
  176.