home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1995 November / PCWK1195.iso / inne / podstawy / os2 / grafika / pmview91.exe / INSTALL.CMD < prev    next >
OS/2 REXX Batch file  |  1995-05-14  |  8KB  |  243 lines

  1. /* REXX program to 1) make Workplace Shell object for PMView, 2) unzip
  2. filters, and 3) create NEWVARS.CMD and/or append to CONFIG.SYS */
  3.  
  4. 'cls'
  5.  
  6. say "Welcome to the PMView installer."
  7. say "This program will do the following:"
  8. say ""
  9.  
  10. say "1) It will create a desktop icon for PMView, complete with"
  11. say "   filename associations (so you can double-click on an image"
  12. say "   filename in a drives object to automatically start PMView"
  13. say '   and view that image). The icon will be named "PMView90", since'
  14. say "   we do not want to overwrite any customized PMView icon you"
  15. say "   might have on the desktop."
  16. say ""
  17. say "2) It will unzip the transformation filters."
  18. say ""
  19. say "3) It will append three SET statements to your CONFIG.SYS file."
  20. say ""
  21. say "It will ask your permission before doing any of these steps. If you'd"
  22. say "rather do these steps yourself, please read the file DIY.TXT."
  23. say ""
  24.  
  25. reply = GetYesNo("Have you unzipped the PMView ZIP file yet")
  26. if \reply then do
  27.    say ""
  28.    say "Please unzip the ZIP file into the current directory and then re-run"
  29.    say "this program."
  30.    say ""
  31.    say "Bye for now."
  32.    exit
  33.    end
  34.  
  35. Call rxfuncadd sysloadfuncs, rexxutil, sysloadfuncs
  36. Call sysloadfuncs
  37.  
  38. fullpath=Directory()
  39. if right(fullpath, 1) \= "\" then do
  40.    fullpath = fullpath || "\"
  41.    end
  42. say
  43. say "Okay. Is" fullPath
  44. reply = GetYesNo("the directory where you want to install PMView")
  45. if \reply then do
  46.    say "Please create the directory for PMView, unzip the ZIP file"
  47.    say "there, and run this program from that directory."
  48.    say ""
  49.    say "Bye for now."
  50.    exit
  51.    end
  52.  
  53. say
  54. say "Good. Should I create a desktop icon for PMView, complete with"
  55. reply = GetYesNo("associations")
  56. if reply then do
  57.    drop res.
  58.    call SysFileTree fullpath || "PMVIEW.EXE", res, "OF"
  59.    if res.1 = "RES.1" then do
  60.       say "Hmm, I can't find PMView.EXE here...."
  61.       say "I'm afraid I'll have to stop."
  62.       say
  63.       say "Please make sure to unzip PMView into this directory and"
  64.       say "re-run this program."
  65.       exit
  66.       end
  67.    else do
  68.       assoc = '*.BMP,*.EPS,*.GIF,*.JPG,*.PBM,*.PCD,*.PCX,*.PIC,*.PGM,' ||,
  69.               '*.PPM,*.SHW,*.TGA,*.TIF,'
  70.       Call SysCreateObject 'WPProgram','PMView90','<WP_DESKTOP>','CCVIEW=YES;EXENAME='||fullpath||'\PMVIEW.EXE;PROGTYPE=PM;PARAMETERS=%*;STARTUPDIR='||fullpath||';ASSOCFILTER='||assoc,'R'
  71.       Say "Okay, I've created a desktop icon for PMView."
  72.       end
  73.    end
  74.  
  75. drop filterPath
  76. say
  77. reply = GetYesNo("Do you have Info-Zip's unzip.exe on your path")
  78. if \reply then do
  79.    say "Then I'm afraid I will not be able to set up the filters."
  80.    say "See DIY.TXT for instructions on doing this by hand."
  81.    end
  82. else do
  83.    reply = GetYesNo("Good. Should I set up the transformation filters")
  84.    if reply then do
  85.       drop res.
  86.       filterPath = fullPath || "filters"
  87.       call SysFileTree filterPath, res, "OD"
  88.       if res.1 = "RES.1" then do
  89.          'md filters'
  90.          drop res.
  91.          call SysFileTree filterPath, res, "OD"
  92.          if res.1 = "RES.1" then do
  93.             say
  94.             say "I'm sorry, but I can't seem to create the directory"
  95.             say filterPath
  96.             say "I'm afraid I will have to stop."
  97.             say "Please create this directory for me and re-run"
  98.             say "this program."
  99.             say
  100.             say "Bye for now."
  101.             exit
  102.             end
  103.          end
  104.       'cd filters&&unzip -o -qq ../filters&&cd ..'
  105.       end
  106.    end
  107.  
  108. '@if exist newvars.cmd del newvars.cmd'
  109. call lineout "newvars.cmd", "set pmview_ini=" || fullPath || "pmview.ini"
  110. call lineout "newvars.cmd", "set pmview_help=" || fullpath
  111. if filterPath = "FILTERPATH" then do
  112.    filterPath = fullPath
  113.    end
  114. call lineout "newvars.cmd", "set pmview_filter=" || filterPath
  115. say
  116. say "Okay. Before you run PMView, you need to set 3 environment variables."
  117. reply = GetYesNo("May I append these to your CONFIG.SYS file")
  118. if reply then do
  119.    configName = "\CONFIG.SYS"
  120.    configLen = length(configName)
  121.    reply = GetYesNo("Is your OS/2 CONFIG.SYS file on drive C:")
  122.    if reply then do
  123.       configPath = "c:"
  124.       end
  125.    else do
  126.       configPath = "unknown"
  127.       end
  128.    do until res.1 \= "RES.1"
  129.       if right(configPath, configLen) \= configName then do
  130.          configPath = configPath || configName
  131.          end
  132.       drop res.
  133.       call SysFileTree configPath, res, "OF"
  134.       if res.1 = "RES.1" then do
  135.          say "I can't find" || ' "' || configPath || '".'
  136.          say "In response to the following question, please enter a full" ||,
  137.              " path."
  138.          say "For example, you might enter H:\CONFIG.SYS"
  139.          call charout, "Where does OS/2 find CONFIG.SYS when it boots? "
  140.          pull configPath
  141.          drop res.
  142.          call SysFileTree configPath, res, "OF"
  143.          if res.1 = "RES.1" then do
  144.             say "Yow! I can't find that file!"
  145.             say
  146.             end
  147.          end
  148.       end /* loop*/
  149.    cBaq = left(configPath, length(configPath) - 3) || "baq"
  150.    drop res.
  151.    call SysFileTree cBaq, res, "OF"
  152.    if res.1 \= "RES.1" then do
  153.       call CantBaqup
  154.       end
  155.    else do
  156.       'copy' configPath cBaq
  157.       drop res.
  158.       call SysFileTree cBaq, res, "OF"
  159.       if res.1 = "RES.1" then do
  160.          call CantBaqup
  161.          end
  162.       else do
  163.          call lineout configPath, "rem *** Set up 3 environment" ||,
  164.                                   " variables for PMView"
  165.          call lineout configPath, "set pmview_ini=" || fullPath || "pmview.ini"
  166.          call lineout configPath, "set pmview_help=" || fullpath
  167.          call lineout configPath, "set pmview_filter=" || filterPath
  168.          call lineout configPath
  169.          say
  170.          say "Okay, I've updated CONFIG.SYS"
  171.          say "I've saved a copy of the old version in CONFIG.BAQ in your"
  172.          say "boot directory."
  173.          say "Please shutdown and reboot OS/2 after this installation program"
  174.          say "is done."
  175.          end
  176.       end
  177.    end
  178. else do
  179.    say
  180.    say "Well, all right then."
  181.    say 'You can enter "NEWVARS" at the OS/2 prompt to set the variables'
  182.    say "correctly -- but this will work only for the current OS/2"
  183.    say "session."
  184.    say
  185.    say "To set the variables permanently, for all OS/2 sessions, please"
  186.    say "add the lines from NEWVARS.CMD to your CONFIG.SYS file."
  187.    end
  188.  
  189. say
  190. say "Should PMView register itself with OS/2 as a TAP client?"
  191. say "You should answer YES if you want TAP servers (such as the LiveWire"
  192. say "communications program) start PMView and use it to view images."
  193. say "To register as a TAP client, PMView will have to write to your"
  194. say "OS/2 system INI file. THIS IS THE ONLY TIME PMVIEW WILL EVER"
  195. say "WRITE TO YOUR SYSTEM FILES."
  196. reply = GetYesNo("Should PMView register itself as a TAP client")
  197. if reply then do
  198.    'PMVIEW /TAP=REG'
  199.    end
  200. else do
  201.    say "Okay. If you want PMView to register itself later, please enter"
  202.    say "   pmview /TAP=REG"
  203.    say "at an OS/2 command prompt."
  204.    end
  205.  
  206. say
  207. say "If you added a desktop icon, with associations, I recommend that you"
  208. say "remove any other associations that these file types may have."
  209. say "Basically: If you double-click an image, and some program other"
  210. say "than PMView starts up (and you want PMView to start up), please"
  211. say "remove the association from that other program."
  212. say
  213. say "(For instance, OS/2 defaults to attaching *.BMP/Bitmap associations to"
  214. say "the Icon Editor, and Warp also attaches them to Windows Paintbrush."
  215. say
  216. say "Whew! We're done! Thanks for your patience, and thanks for your"
  217. say "interest in PMView!"
  218.  
  219. exit
  220.  
  221. GetYesNo: procedure
  222. ok = 0
  223. do until ok
  224.    call charout, arg(1) || "? "
  225.    pull reply
  226.    reply = left(reply, 1)
  227.    ok = (reply = "Y") | (reply = "N")
  228.    if \ok then do
  229.       say
  230.       say 'Huh? Please enter "Y" or "N".'
  231.       end
  232.    end /* loop */
  233. return (reply = "Y")
  234.  
  235. CantBaqup: procedure
  236. say d2c(7) d2c(7)
  237. say "Ouch! I cannot make a backup copy of CONFIG.SYS."
  238. say "Therefore, to be safe, I will not modify your CONFIG.SYS file."
  239. say "PLEASE edit CONFIG.SYS by hand, and add the 3 lines"
  240. say "from NEWVARS.CMD."
  241.  
  242. return
  243.