home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / netdor3.zip / DISK_13 / IMAGE12.ZIP / CATALOG / OPENDOOR.CMD < prev    next >
OS/2 REXX Batch file  |  1993-09-20  |  6KB  |  160 lines

  1. /*****************************************************************************
  2.  *                       COREADD backend for OpenDoor                        *
  3.  *                     CORE Development (CORE at WATSON)                     *
  4.  *****************************************************************************
  5.  *                    Licensed Materials-Property of IBM                     *
  6.  *               5604-472 (c) Copyright IBM Corporation, 1993                *
  7.  *                           All rights reserved.                            *
  8.  *                  US Government Users Restricted Rights -                  *
  9.  *                 Use, duplication or disclosure restricted                 *
  10.  *                by GSA ADP Schedule Contract with IBM Corp.                *
  11.  ****************************************************************************/
  12. trace 'O'
  13. signal on syntax
  14. signal on novalue
  15. call on halt
  16. call rxfuncadd 'CADDINIT', 'RXCADD', 'CADDINIT'
  17. Ver = 'CAddInit'()
  18. if abbrev(Ver, 'ERROR:')
  19.   then exit 200
  20. Title = RxCAdd.STitle 'Installation'
  21. XCode = 0
  22.  
  23. FilesSource. = 0
  24. FilesDest. = 0
  25. FilesSource.0 = '[REMOTE]\OPENDOOR\OPENDOOR.EXE';  FilesDest.0 = '[SYSTEM]\OPENDOOR.EXE'
  26. FilesSource.1 = '[REMOTE]\OPENDOOR\OPENDOOR.HLP';  FilesDest.1 = '[SYSTEM]\OPENDOOR.HLP'
  27. FilesSource.2 = '[REMOTE]\DLL\COUENV.DLL';         FilesDest.2 = '[DLL]\COUENV.DLL'
  28. FilesSource.3 = '[REMOTE]\DLL\NICK16.DLL';         FilesDest.3 = '[DLL]\NICK16.DLL'
  29.  
  30. select
  31.   when RxCAdd.OpType = 'ADD'
  32.     then do
  33.       call rxfuncadd 'RXCOUINFO', 'COUENV', 'RXCOUINFO'
  34.       call rxfuncadd 'RXCOUCOPY', 'COUCOPY', 'RXCOUCOPY'
  35.       signal on syntax name NoCouEnv
  36.       call rxCouInfo 'VER'
  37.       signal on syntax name syntax
  38.       BaseExeDir = rxCouInfo('GET', 'SYSTEM')
  39.       ExeDir = strip(BaseExeDir, 'T', '\')'\'
  40.  
  41.       rc = 0
  42.       do i = 0 by 1 while (FilesSource.i <> 0 & rc = 0)
  43.          say 'Copying 'FilesSource.i' to 'FilesDest.i'...'
  44.          rc = RxCouCopy(FilesSource.i, FilesDest.i, 'DEFER', RxCAdd.STitle, 'AUTOUPDATE')
  45.       end
  46.       if rc = 0 then do
  47.          inifile = RxCouInfo('GET', 'INIFILE')
  48.          value = RxOS2Ini(inifile, 'COREUP', 'Access')
  49.          value = strip(value, 'T', '0'x)
  50.          select
  51.             when value = 'NETBIOS' then do
  52.                say 'Copying [REMOTE]\OPENDOOR\COUILR.DLL to [DLL]\COUILR.DLL...'
  53.                rc = RxCouCopy('[REMOTE]\OPENDOOR\COUILR.DLL', '[DLL]\COUILR.DLL', 'DEFER',,
  54.                               RxCAdd.STitle, 'AUTOUPDATE')
  55.                end
  56.             when value = 'NFS' then do
  57.                say 'Copying [REMOTE]\OPENDOOR\COUNFS.DLL to [DLL]\COUNFS.DLL...'    
  58.                rc = RxCouCopy('[REMOTE]\OPENDOOR\COUNFS.DLL', '[DLL]\COUNFS.DLL', 'DEFER',,
  59.                               RxCAdd.STitle, 'AUTOUPDATE')
  60.                end
  61.             otherwise
  62.                rc = 50
  63.          end
  64.       end
  65.       if rc = 0 then do
  66.          RxCadd.ProgInfo.4 = 'EXE='ExeDir'OPENDOOR.EXE'
  67.          RxCadd.ProgInfo.6 = 'WORKDIR='BaseExeDir
  68.       end; else do
  69.          say 'Error 'rc' occured attempting to copy files to your machine.'
  70.          XCode = rc
  71.       end
  72.     end
  73.   when RxCAdd.OpType = 'REMOVE'
  74.     then do
  75.       call rxfuncadd 'RXCOUDELETEALL', 'COUCOPY', 'RXCOUDELETEALL'
  76.       say 'Removing 'RxCAdd.STitle'...'
  77.       rc = RxCouDeleteAll(RxCAdd.STitle, 'IMMEDIATE')
  78.       if rc <> 0 then do
  79.          say 'Error 'rc' occured trying to remove 'RxCAdd.STitle' from your machine.'
  80.          XCode = 1
  81.       end
  82.     end
  83.   otherwise do
  84.     call 'MessageBox' Title, 'Unexpected operation type "'RxCAdd.OpType'"'
  85.     XCode = 201
  86.   end
  87. end
  88. call AddExit XCode
  89.  
  90. NoCouEnv:
  91. call AddExit 10, 'COUENV.DLL could not be found.'
  92.  
  93. AddExit:
  94. parse arg XCode, Msg
  95. if XCode = ''
  96.   then XCode = 0
  97. if Msg <> ''
  98.   then call 'MessageBox' Title, Msg
  99. call 'CAddComplete' XCode
  100. call rxSleep 2
  101. if RxCAdd.OpType = 'ADD' then do
  102.   parse var RxCAdd.ProgInfo.1 '=' LTitle
  103.   if rxOs2Ver() >= 2.0
  104.     then do
  105.       if \SysCreateObject('WPShadow', LTitle, '<WP_START>',,
  106.            'OBJECTID=<COU_SHAD_COREINIT>;SHADOWID=<CORE_APP_'RxCAdd.STitle'>;', 'U')
  107.         then call 'MessageBox' Title, 'Warning:  Shadow could not be created in',
  108.             'System Startup folder.'
  109.     end
  110.     else do
  111.       call rxOs2Ini 'USER', 'PM_Autostart', 'NetDoor\'LTitle, '1'||'0'x
  112.     end
  113. end
  114. call 'CAddExit'
  115. exit XCode
  116.  
  117. /***********************************************************************
  118.  *                             ERROR TRAPS                             *
  119.  ***********************************************************************/
  120. BugInit:
  121. signal off error; signal off failure; signal off halt
  122. signal off novalue; signal off notready; signal off syntax
  123. parse upper source . . Me
  124. if symbol('TITLE') = 'LIT'
  125.   then Title = 'COREADD Failure'
  126. Me = Me':'||'0A'x
  127. if symbol('GLOBALS') = 'LIT'
  128.   then do
  129.     Globals = 'TrVal'
  130.     TrVal = 'O'
  131.   end
  132. return
  133.  
  134. Halt:
  135. Where = SigL
  136. call BugInit
  137. call 'MessageBox' Title, Me||'Execution halted by user in line' Where
  138. XXC = 204
  139. signal DebugExit
  140.  
  141. Syntax:
  142. Where = SigL
  143. call BugInit
  144. call 'MessageBox' Title,,
  145.     Me||'Syntax error' rc '('errortext(rc)') in line' Where'.'
  146. XXC = 203
  147. signal DebugExit
  148.  
  149. Novalue:
  150. Where = SigL
  151. call BugInit
  152. call 'MessageBox' Title, Me||'NOVALUE error ('condition('D')') in line' Where'.'
  153. XXC = 203
  154. signal DebugExit
  155.  
  156. DebugExit:
  157. call 'CAddComplete' XXC
  158. call 'CAddExit'
  159. exit XXC
  160.