home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / OS2 / ALTBT120.ZIP / INSTALL.CMD < prev    next >
OS/2 REXX Batch file  |  1994-01-27  |  13KB  |  367 lines

  1. /*───────────────────────────────────────────────────────────────────────────┐
  2. │  ALBATROS CDPLAYER Installation script (c) 1993 Norbert Heller             │
  3. │                                                                            │
  4. │                                                                            │
  5. │  Usage    :  INSTALL  <Source> <Target> <Language> <Display Type >         │
  6. │                                                                            │
  7. │  Example  :  INSTALL  A: C:\ALBATROS G           6                         │
  8. │              INSTALL  C:\UNPACK  C:\ALBATROS G   6                         │
  9. │                                                                            │
  10. │                                                                            │
  11. └───────────────────────────────────────────────────────────────────────────*/
  12. /* Anfang mit API */
  13. Call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
  14. Call SysLoadFuncs
  15. Call SysCls
  16.  
  17. /* Kommando Zeilen Parameter. */
  18. Parse Arg FloppyDir InstallDir Language Resolution
  19.  
  20. /* Start Init */
  21. bInstructed = 0
  22. Signal On Halt Name SignalHandler
  23.  
  24. /* Source */
  25. If FloppyDir = " " Then Do
  26.     Call Instructions
  27.     Say
  28.     Say 'NOTE:  If installing from a floppy drive, specify A: or B: '
  29.     Say '       If installing from a Hard Disk , specify full pathname '
  30.     Say
  31.     Call SimplePrompt 'Source Directory (Default 'directory()'):'
  32.     Pull FloppyDir
  33.  
  34.     /* Fehler ? */
  35.     If FloppyDir = " " Then Do
  36.        FloppyDir = directory()
  37.     End
  38. End
  39.  
  40.  
  41. /* Target */
  42. If InstallDir = " " Then Do
  43.     Call Instructions
  44.     Say
  45.     Call SimplePrompt 'Target Directory ( Default C:\ALBATROS ) :'
  46.     Parse Pull InstallDir
  47.  
  48.     /* Fehler ? */
  49.     If InstallDir = " " Then Do
  50.        InstallDir='C:\ALBATROS'
  51.     End
  52. End
  53.  
  54. /* Language erfassen */
  55.  
  56. If Language = " " Then Do
  57.     Say
  58.     Call SimplePrompt 'Language : (G)erman  (E)nglish  :'
  59.     Parse Pull Language
  60.  
  61.     /* Fehler, default == Englisch  ? */
  62.     If Language = " " Then Do
  63.        Language = 'e'
  64.     End
  65. End
  66.  
  67. /* Resolution erfassen */
  68. If Resolution = " " Then Do 
  69.     Say
  70.     Call SimplePrompt 'Resolution of Target Screen : (6)40 or 800    (1)024 or 1280:'
  71.     Parse Pull Resolution
  72.  
  73.     /* Fehler, default == 640  ? */
  74.     If Resolution = " " Then Do
  75.        Resolution = '6'
  76.     End
  77. End 
  78.  
  79.  
  80. /* Font Art ( Modern / Classic ) Erfassen */
  81. /* If FontStyle = " " Then Do */
  82.     Say
  83.     Call SimplePrompt 'Font Style   (C)lassic (M)odern (F)uture  :'
  84.     Parse Pull FontStyle
  85.  
  86.     /* Fehler, default == MODERN  ? */
  87.     If FontStyle = " " Then Do
  88.        FontStyle = 'M'
  89.     End
  90. /* End */
  91.  
  92.  
  93. /* Pfad berichtigen */
  94. If SubStr( FloppyDir, Length( FloppyDir ), 1 ) \= '\' Then
  95.     FloppyDir = FloppyDir||'\'
  96.  
  97. /* Alles Klar ?     */
  98. Call SysCls
  99. Say '╔═══════════════════════════════════════════════════════════╗'
  100. Say '║                                                           ║'
  101. Say '║    ALBATROS  CD PLAYER INSTALLATION                       ║'
  102. Say '║                                                           ║'
  103. Say '╚═══════════════════════════════════════════════════════════╝'
  104. Say '                                                             '
  105. Say ' Source Directory:       "'FloppyDir'"              '
  106. Say ' Installation Directory: "'InstallDir'"             '
  107. Say '                                                            '
  108. If Language='G' | Language = 'g' then
  109. Say ' Language = GERMAN                                          '
  110. else
  111. If Language='E' | Language = 'e' then
  112. Say ' Language = ENGLISH                                         '
  113. Say '                                                             '
  114.  
  115. If Resolution='6' then
  116. Say ' Resolution = (640*480) or (800*600)                                          '
  117. else
  118. If Resolution='1' then
  119. Say ' Resolution = (1024*768) or (1280*1024)                                         '
  120. Say '                                                             '
  121.  
  122. If FontStyle='M' | FontStyle = 'm' then
  123. Say ' Font Style = MODERN                                          '
  124. else
  125. If FontStyle='C' | FontStyle = 'c' then
  126. Say ' Font Style = CLASSIC                                         '
  127. else
  128. If FontStyle='F' | FontStyle = 'f' then
  129. Say ' Font Style = FUTURE                                          '
  130.  
  131. Say
  132. Call YNPrompt ' OK to continue?', '1'
  133.  
  134. /* Dir's da ? */
  135. Say
  136. Say 'Checking for directory "'InstallDir'".'
  137. Call SysFileTree InstallDir, FileStem, 'D'
  138.  
  139. /* Directory nicht da  */
  140. If FileStem.0 = '0' Then Do
  141.     Say 'The "'InstallDir'" directory does not exist on your hard drive.'
  142.     Say
  143.     Call YNPrompt 'OK to create "'InstallDir'"?', '1'
  144.     Say
  145.     Say 'Creating 'InstallDir'....'
  146.     rc = SysMkDir( InstallDir )
  147.     if rc = 0 Then Do
  148.         Say 'The directory "'InstallDir'" was created successfully.'
  149.     End
  150.     Else Do
  151.         Say 'The directory "'InstallDir'" could not be created.'
  152.         Exit
  153.     End
  154. End
  155.  
  156.  
  157. /* Kopieren */
  158. Call SysCls
  159. Say
  160. Say 'ALBATROS  INSTALL is copying files to your hard drive.'
  161. Say
  162. Call CopyFile 'ALBATROS.EXE',   FloppyDir, InstallDir
  163. Call CopyFile 'ALBATROS.ICO',   FloppyDir, InstallDir
  164. /*
  165. Call CopyFile 'ALBATROS.HLP',   FloppyDir, InstallDir
  166. Call CopyFile 'ALBATROS.INF',   FloppyDir, InstallDir
  167. */
  168.  
  169. If Language = 'G' | Language = 'g' then Do
  170.    Copy FloppyDir || GERMAN.DLL InstallDir||'\'||ALBATROS.DLL
  171.    Copy FloppyDir || GERMAN.INF InstallDir||'\'||ALBATROS.INF
  172.    Copy FloppyDir || GERMAN.HLP InstallDir||'\'||ALBATROS.HLP
  173. End
  174.  
  175. If Language = 'E' | Language = 'e' then do
  176.    Copy FloppyDir || ENGLISH.DLL InstallDir||'\'||ALBATROS.DLL
  177.    Copy FloppyDir || ENGLISH.INF InstallDir||'\'||ALBATROS.INF
  178.    Copy FloppyDir || ENGLISH.HLP InstallDir||'\'||ALBATROS.HLP
  179. End
  180.  
  181. If Resolution = '6' then do
  182.    If FontStyle = "M" | FontStyle = "m" then 
  183.      Copy FloppyDir || LCD640.FON InstallDir||'\'||ALBATROS.FON
  184.    else
  185.    If FontStyle = "F" | FontStyle = "f" then 
  186.      Copy FloppyDir || LCD640f.FON InstallDir||'\'||ALBATROS.FON
  187.    else
  188.    If FontStyle = "C" | FontStyle = "c" then 
  189.      Copy FloppyDir || LCD640c.FON InstallDir||'\'||ALBATROS.FON
  190. End
  191.  
  192. If Resolution = '1' then do
  193.    If FontStyle = "M" | FontStyle = "m" then 
  194.      Copy FloppyDir || LCD1024.FON InstallDir||'\'||ALBATROS.FON
  195.    else
  196.    If FontStyle = "C" | FontStyle = "c" then 
  197.      Copy FloppyDir || LCD1024c.FON InstallDir||'\'||ALBATROS.FON
  198.    else
  199.    If FontStyle = "F" | FontStyle = "f" then
  200.      Copy FloppyDir || LCD1024f.FON InstallDir||'\'||ALBATROS.FON
  201. End
  202.  
  203. /*
  204. Call CopyFile 'ALBATROS.FON',   FloppyDir, InstallDir
  205. */
  206. Call CopyFile 'INSTALL.CMD',    FloppyDir, InstallDir
  207.  
  208.  
  209. /* Program objekt erstellen ? */
  210. Call SysCls
  211. Say '╔═══════════════════════════════════════════════════════════╗'
  212. Say '║                                                           ║'
  213. Say '║   ALBATROS CD Player can be installed as a program        ║'
  214. Say '║   object on your Desktop                                  ║'
  215. Say '║                                                           ║'
  216. Say '╚═══════════════════════════════════════════════════════════╝'
  217. Say 
  218. Ret = YNPrompt( 'Do you want a program object created?', '0' )
  219. If Ret = 'Y' | Ret = 'y' Then Do
  220.     Say
  221.     Say 'Creating program reference object.'
  222.     r = SysCreateObject(    "WPProgram",,
  223.                             "Albatros",,
  224.                             "<WP_DESKTOP>",,
  225.                             "EXENAME="||InstallDir||"\ALBATROS.EXE;STARTUPDIR="||InstallDir )
  226.  
  227. End
  228.  
  229. /* und das INF Anzeigen */
  230. If Language = 'E' | Language = 'e' then Do
  231.    View InstallDir||'\'||ALBATROS.INF ABOUT
  232. End
  233.  
  234. If Language = 'G' | Language = 'g' then Do
  235.    View InstallDir||'\'||ALBATROS.INF UEBER
  236. End
  237.  
  238. /* Und Fertig */
  239. Call SysCls
  240. Say '╔═══════════════════════════════════════════════════════════╗'
  241. Say '║                                                           ║'
  242. Say '║   CD Player has been installed correctly                  ║'
  243. Say '║                                                           ║'
  244. Say '║   Please read the README Files and REGISTER Your Copy     ║'
  245. Say '║                                                           ║'
  246. Say '║   Have Fun with CD PLAYER                                 ║'
  247. Say '║                                                           ║'
  248. Say '╚═══════════════════════════════════════════════════════════╝'
  249. Say '                                                             '
  250.  
  251.  
  252. /* Und Tschuess */
  253. Exit
  254.  
  255.  
  256. /*───────────────────────────────────────────────────────────────────────────┐
  257. │  Name:        CopyFile                                                     │
  258. │                                                                            │
  259. │  Description: kopiert eine datei                                           │
  260. │                                                                            │
  261. │  Args:        File2copy, FloppyDrive, DestDrive                            │
  262. │                                                                            │
  263. └───────────────────────────────────────────────────────────────────────────*/
  264. CopyFile: Arg ArgFile2Copy, ArgFloppyDir, ArgInstallDir
  265.  
  266.     Say
  267.     Say 'Copying 'ArgFloppyDir||ArgFile2Copy' to 'ArgInstallDir||'\'||ArgFile2Copy'.'
  268.     Command = '@Copy 'ArgFloppyDir||ArgFile2Copy' 'ArgInstallDir||'\'||ArgFile2Copy
  269.     Command
  270.     if rc \= 0 Then Do
  271.         Call SimplePrompt 'Warning! 'ArgFile2Copy' could not be copied properly.'
  272.         Pull ConfirmIt
  273.     End
  274.     Return
  275.  
  276.  
  277. /*───────────────────────────────────────────────────────────────────────────┐
  278. │                                                                            │
  279. │  Name:        Prompt                                                       │
  280. │                                                                            │
  281. │  Description: Stellt den Curso an eine bestimmte stelle des Bildschirms    │
  282. │                                                                            │
  283. │  Args:        Prompt                                                       │
  284. └───────────────────────────────────────────────────────────────────────────*/
  285. SimplePrompt: Parse Arg ArgPrompt
  286.  
  287.     /* Kursor position */
  288.     Parse Value SysCurPos() With Row .
  289.  
  290.     /* Schirm groesse */
  291.     Parse Value SysTextScreenSize() With NumRows .
  292.  
  293.     /* End des Bildschirm ? */
  294.     if Row = NumRows - 1 Then Row = Row - 1
  295.  
  296.     /* Eingabe  */
  297.     Col = Length( ArgPrompt ) + 1
  298.  
  299.     /* Zeige Eingabe */
  300.     Say ArgPrompt
  301.     Call SysCurPos Row, Col
  302.  
  303.     Return
  304.  
  305.  
  306. /*───────────────────────────────────────────────────────────────────────────┐
  307. │  Name:        YNPrompt                                                     │
  308. │                                                                            │
  309. │  Description: Fragt nach Y /N                                              │
  310. │                                                                            │
  311. │  Args:        Yes/No Prompt                                                │
  312. └───────────────────────────────────────────────────────────────────────────*/
  313. YNPrompt: Parse Arg ArgPrompt, ArgAbort
  314.  
  315.     /* Bwenutzer Fragen*/
  316.     Call SimplePrompt ArgPrompt' (Y or N)'
  317.  
  318.     /* Bis er mit ja oder nein antwortet */
  319.     Do Forever
  320.         Key = SysGetKey( 'NOECHO' )
  321.         If Key = 'Y' | Key = 'y' Then Do
  322.             Say
  323.             Return Key
  324.         End
  325.         Else If Key = 'N' | Key = 'n' Then Do
  326.             Say
  327.             If ArgAbort = '1' Then Exit
  328.             Return Key
  329.         End
  330.     End
  331.     Return 'y'
  332.  
  333.  
  334. /*───────────────────────────────────────────────────────────────────────────┐
  335. │  Name:        Instruktionen                                                │
  336. │                                                                            │
  337. │  Description: Wie installiere ich richtig                                  │
  338. └───────────────────────────────────────────────────────────────────────────*/
  339. Instructions:
  340.     If bInstructed  = 0 Then Do
  341.         Say
  342.         Say '╔═══════════════════════════════════════════════════════════════╗'
  343.         Say '║    ALBATROS CD PLAYER Installation Instructions:              ║'
  344.         Say '║                                                               ║'
  345.         Say '║ Usage  : INSTALL  <Source> <Target> <Language> <Display Type> ║'
  346.         Say '║                                                               ║'
  347.         Say '║ Example: INSTALL A:           C:\ALBATROS  E  1               ║'
  348.         Say '║ Example: INSTALL C:\UNPACK    C:\ALBATROS  E  1               ║'
  349.         Say '║                                                               ║'
  350.         Say '╚═══════════════════════════════════════════════════════════════╝'
  351.  
  352.        bInstructed = 1
  353.     End
  354.     Return
  355.  
  356.  
  357. /*───────────────────────────────────────────────────────────────────────────┐
  358. │  Name:        SignalHandler                                                │
  359. │                                                                            │
  360. │  Description: Signal Handler                                               │
  361. └───────────────────────────────────────────────────────────────────────────*/
  362. SignalHandler:
  363.     Call SysCls
  364.     Say 'Warning ! CD Player installation aborted.'
  365.     Exit
  366.  
  367.