home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / VSCPPv7.zip / VACPP / IBMCPP / smarts / SCRIPTS / DTSSCR.CMD < prev    next >
OS/2 REXX Batch file  |  1995-06-02  |  10KB  |  256 lines

  1. /*REXX*/
  2.  
  3. /*   DTSSCR.CMD   Project Smarts install script for DTS project
  4.  *
  5.  *   Licensed Materials - Property of IBM
  6.  *
  7.  *   "Restricted Materials of IBM"
  8.  *
  9.  *   IBM WorkFrame
  10.  *
  11.  *   (C) Copyright IBM Corp. 1995. All Rights Reserved.
  12.  *
  13.  *   US Government Users Restricted Rights - Use, duplication or
  14.  *   disclosure restricted by GSA ADP Schedule Contract with
  15.  *   IBM Corp.
  16.  *
  17.  */
  18.  
  19.  
  20. /* Initialize - use a global stem variable. */
  21. stem = "stem"
  22. RC_OK     = 0
  23. RC_CANCEL = 95
  24.  
  25.  
  26. /* Open the installation console. */
  27. rc = IwfOpenConsole(stem);
  28.  
  29. /* Load the REXX utility functions. */
  30. rc = RxFuncAdd('SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs');
  31. rc = SysLoadFuncs();
  32.  
  33. /* Extract the passed parameters. */
  34. if (Arg() <> 3) Then
  35.    call Abort("Error in parameter list.");
  36. Parse Arg Proj,Src,Cat;
  37.  
  38. SAY Cat
  39.  
  40. /* Initialize the progress, status, and log. */
  41. stem.usPercent     = 0
  42. stem.pszStatusText = "Initializing..."
  43. rc = IwfUpdateConsoleProgress(stem);
  44. rc = IwfUpdateConsoleStatus(stem);
  45. SAY "Initializing the Project Smarts install..."
  46. SAY " "
  47.  
  48. /* Present disclaimers. */
  49. stem.usPercent     = 10
  50. stem.pszStatusText = "Presenting disclaimers..."
  51. rc = IwfUpdateConsoleProgress(stem);
  52. rc = IwfUpdateConsoleStatus(stem);
  53. line1 = 'DISCLAIMER OF WARRANTIES.  The code that will be installed is '
  54. line2 = 'template code created by IBM Corporation. This code is not '
  55. line3 = 'part of any standard or IBM product and is provided to you solely '
  56. line4 = 'for  the purpose of assisting you in the development of your '
  57. line5 = 'applications.  The code is provided "AS IS", without '
  58. line6 = 'warranty of any kind.  IBM shall not be liable for any damages '
  59. line7 = 'arising out of your use of the sample code, even if they have been '
  60. line8 = 'advised of the possibility of such damages.'
  61. SAY line1||line2||line3||line4||line5||line6||line7||line8
  62. SAY " "
  63.  
  64. /* Query the target location for the install. */
  65. stem.usPercent     = 30
  66. stem.pszStatusText = "Querying the install location..."
  67. rc = IwfUpdateConsoleProgress(stem);
  68. rc = IwfUpdateConsoleStatus(stem);
  69. SAY "Enter the project name, target directory, and folder for the installation."
  70. /* Set defaults for Location dialog */
  71. env='OS2ENVIRONMENT';                  /* Default target directory */
  72. tmploc = VALUE('tmp',,env)             /* is on TMP variable dir   */  
  73. tmploc = STRIP(tmploc,Trailing,'\');   /* Strip any backslashes at end of path */
  74. Locn = tmploc||'\dtsprj';
  75. stem.pszTargetProject   = Proj
  76. stem.pszTargetDirectory = Locn
  77. stem.pszTargetFolder    = "Desktop"
  78. do until (rc = RC_OK)
  79.    rc = IwfQueryLocation(stem);
  80.    if (rc  = RC_CANCEL) then call Cancel
  81.    else
  82.    if (rc <> RC_OK) then call Abort("Error querying target information.");
  83. end
  84.  
  85.  
  86. /* Set up default variable settings for the installation. */
  87. stem.usPercent     = 40
  88. stem.pszStatusText = "Confirming variable settings..."
  89. stem.usVariableCount = 3
  90. stem.pszVariableName.1        = "Your_Name"
  91. stem.pszVariableDescription.1 = "Your name for the source code prolog."
  92. stem.pszVariableValue.1       = "Your name"
  93. stem.pszVariableName.2        = "Date"
  94. stem.pszVariableDescription.2 = "The date for the source code prolog."
  95. stem.pszVariableValue.2       = Date()
  96. stem.pszVariableName.3        = "Prolog"
  97. stem.pszVariableDescription.3 = "The prolog that appears at the head of all the generated source files."
  98. stem.pszVariableValue.3       = "/*\n * This file was created for %YOUR_NAME% \n * by Project Smarts on %DATE%. \n */";
  99. rc = IwfUpdateConsoleProgress(stem);
  100. rc = IwfUpdateConsoleStatus(stem);
  101. SAY "Confirm the settings of variables used to customize the installation."
  102. /* Restore any saved variable settings */
  103. stem.pszCatalog = Cat;
  104. stem.pszApplication = 'VAPSDTS';
  105. rc = IwfRestoreVariables(stem);
  106. if (rc <> RC_OK) then SAY ("Could not restore variable settings. Will use defaults.");
  107. /* Restore date to current date */
  108. stem.pszVariableValue.2 = Date()
  109. /* Display variable settings window */
  110. do until (rc = RC_OK)
  111.    rc = IwfQueryVariables(stem);
  112.    if (rc  = RC_CANCEL) then call Cancel
  113.    else
  114.    if (rc <> RC_OK) then call Abort("Error querying variable settings.");
  115. end
  116. /* Save variable settings */
  117. rc = IwfSaveVariables(stem);
  118. if (rc <> RC_OK) then SAY ("Error saving variable settings.");
  119.  
  120.  
  121. /* Copy the files over, substituting the variable settings. */
  122. stem.usPercent     = 50
  123. stem.pszStatusText = "Copying files, with substitution."
  124. rc = IwfUpdateConsoleProgress(stem);
  125. rc = IwfUpdateConsoleStatus(stem);
  126. SAY "The project source files in" Src "are being copied to" stem.pszTargetDirectory"."
  127. stem.pszSourceFileMask = Src;
  128. /* Copy main directory files */
  129. rc = IwfCopyWithSubstitution(stem);
  130. if (rc <> RC_OK) then call Abort("Error performing copy with substitution.");
  131. /* Copy files in Cat DLL subdirectory */
  132. mainTargetDir = stem.pszTargetDirectory;
  133. mainSourceDir = Src;
  134. catTargetDir = mainTargetDir"\CAT";
  135. stem.pszTargetDirectory = catTargetDir;
  136. stem.pszSourceFileMask = mainSourceDir"\CAT"
  137. rc = IwfCopyWithSubstitution(stem);
  138. if (rc <> RC_OK) then call Abort("Error performing copy with substitution.");
  139. /* Copy files in Dog DLL subdirectory */
  140. dogTargetDir = mainTargetDir"\DOG";
  141. stem.pszTargetDirectory = dogTargetDir;
  142. stem.pszSourceFileMask = mainSourceDir"\DOG"
  143. rc = IwfCopyWithSubstitution(stem);
  144. if (rc <> RC_OK) then call Abort("Error performing copy with substitution.");
  145. /* Copy files in Animal DLL subdirectory */
  146. animTargetDir =  mainTargetDir"\ANIMAL";
  147. stem.pszTargetDirectory = animTargetDir;
  148. stem.pszSourceFileMask = mainSourceDir"\ANIMAL"
  149. rc = IwfCopyWithSubstitution(stem);
  150. if (rc <> RC_OK) then call Abort("Error performing copy with substitution.");
  151. /* Restore variables */
  152. stem.pszTargetDirectory = mainTargetDir
  153. stem.pszSourceFileMask = mainSourceDir
  154.  
  155.  
  156. /* Create and set the Main DTS project. */
  157. stem.usPercent     = 70;
  158. stem.pszStatusText = "Creating the root DTS project.";
  159. SAY "The project will be created in "stem.pszTargetFolder;
  160. rc = IwfUpdateConsoleProgress(stem);
  161. rc = IwfUpdateConsoleStatus(stem);
  162. /* Get the path of the shell projects */
  163. ShellPath = VALUE('CPPMAIN',,env);   /* on CPPMAIN variable path */
  164. if ShellPath='' then call Abort("Error obtaining Project Smarts path.");
  165. ShellPath = ShellPath'\smarts\projects';
  166. stem.pszSourceProject = ShellPath'\DTSMain'
  167. pszTarDir = stem.pszTargetDirectory;
  168. stem.pszTargetProjectSetup = 'TARGETNAME=main.exe;MAKEFILENAME=main.mak;PAMLOCATION:IWFBPAM='pszTarDir';PAMDEFAULT:IWFBPAM='pszTarDir';INHERITLIST=<CPPDFTPRJ>;TITLE='stem.pszTargetProject';'
  169. SAY stem.pszTargetProjectSetup;
  170. rc = IwfCreateProjectFromProject(stem)
  171. SAY 'Returned root DTS project path name: 'stem.pszTargetFile
  172. if (rc <> RC_OK) then call Abort("Error creating project.");
  173. DTSPrjPath = stem.pszTargetFile;
  174.  
  175.  
  176. /* Create and set the Dog DLL project. */
  177. stem.usPercent     = 80;
  178. stem.pszStatusText = "Creating the Dog DLL project.";
  179. rc = IwfUpdateConsoleProgress(stem);
  180. rc = IwfUpdateConsoleStatus(stem);
  181. stem.pszTargetProject = "Dog DLL Project";
  182. stem.pszSourceProject = ShellPath'\DTSDog';
  183. stem.pszTargetProjectSetup = 'TARGETNAME=dog.dll;MAKEFILENAME=dog.mak;PAMLOCATION:IWFBPAM='dogTargetDir';PAMDEFAULT:IWFBPAM='dogTargetDir';INHERITLIST=<CPPDFTPRJ>;TITLE=Dog DLL Project;'
  184. stem.pszTargetFolder = pszTarDir;  
  185. SAY stem.pszTargetProjectSetup;
  186. rc = IwfCreateProjectFromProject(stem)
  187. SAY 'Returned Dog DLL project path name: 'stem.pszTargetFile
  188. if (rc <> RC_OK) then call Abort("Error creating project.");
  189. DogPrjPath = stem.pszTargetFile;
  190.  
  191.  
  192. /* Create and set the Cat DLL project. */
  193. stem.usPercent     = 80;
  194. stem.pszStatusText = "Creating the Cat DLL project.";
  195. rc = IwfUpdateConsoleProgress(stem);
  196. rc = IwfUpdateConsoleStatus(stem);
  197. stem.pszTargetProject = 'Cat DLL Project';
  198. stem.pszSourceProject = ShellPath'\DTSDog';
  199. stem.pszTargetProjectSetup = 'TARGETNAME=cat.dll;MAKEFILENAME=cat.mak;PAMLOCATION:IWFBPAM='catTargetDir';PAMDEFAULT:IWFBPAM='catTargetDir';INHERITLIST=<CPPDFTPRJ>;TITLE=Cat DLL Project;'
  200. stem.pszTargetFolder = pszTarDir'\DOG';
  201. SAY stem.pszTargetProjectSetup;
  202. rc = IwfCreateProjectFromProject(stem)
  203. SAY 'Returned Cat DLL project path name: 'stem.pszTargetFile
  204. if (rc <> RC_OK) then call Abort("Error creating project.");
  205. CatPrjPath = stem.pszTargetFile;
  206.  
  207.  
  208. /* Create and set the Animal DLL project. */
  209. stem.usPercent     = 75;
  210. stem.pszStatusText = "Creating the Animal DLL project.";
  211. rc = IwfUpdateConsoleProgress(stem);
  212. rc = IwfUpdateConsoleStatus(stem);
  213. stem.pszSourceProject = ShellPath'\DTSAnim';
  214. stem.pszTargetProject = 'Animal DLL Project';
  215. stem.pszTargetFolder = pszTarDir'\CAT';
  216. stem.pszTargetProjectSetup = 'TARGETNAME=animal.dll;MAKEFILENAME=animal.mak;PAMLOCATION:IWFBPAM='animTargetDir';PAMDEFAULT:IWFBPAM='animTargetDir';INHERITLIST=<CPPDFTPRJ>;TITLE=Animal DLL Project;'
  217. SAY stem.pszTargetProjectSetup;
  218. rc = IwfCreateProjectFromProject(stem)
  219. if (rc <> RC_OK) then call Abort("Error creating project.");
  220. SAY 'Returned Help project path name: 'stem.pszTargetFile
  221.  
  222.  
  223. /* Done! */
  224. stem.usPercent     = 100
  225. stem.pszStatusText = "Installation successful."
  226. rc = IwfUpdateConsoleProgress(stem);
  227. rc = IwfUpdateConsoleStatus(stem);
  228. SAY "The installation is complete and was successful."
  229. rc = RxMessageBox("The WorkFrame project has been created.", "Done!", "OK", "Information");
  230.  
  231. /* We are done. */
  232. call Done(0);
  233.  
  234.  
  235. Cancel:
  236. rcCancel = RxMessageBox("Do you really want to cancel?", , "YesNo", "Query")
  237. if (rcCancel = 6) Then
  238.    call Done(8)
  239. return
  240.  
  241. Abort:
  242. parse arg abortMessage
  243. rcAbort = RxMessageBox(abortMessage, , "OK", "Error")
  244. call Done(16)
  245.  
  246. Done:
  247. arg exitRc
  248. /* Close the installation console. */
  249. rcDone = IwfCloseConsole(stem);
  250. /* Unload the environment profile functions */
  251. exit(exitRc)
  252.  
  253.  
  254.  
  255.  
  256.