home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / visdb2tk.zip / VISSETEA.CMD < prev   
OS/2 REXX Batch file  |  1996-03-29  |  3KB  |  90 lines

  1. /* REXX */
  2. /*********************************************************************
  3. * This exec sets the extended attributes of files to prdefined
  4. * values by file extension.  Stem Variables are initialised
  5. * at the top of the exec as follows:
  6. *              fileext.n - the extension for which an EA must be set
  7. *              fileea.n  - the corresponding text for the 'type' 
  8. *                          extended attribute
  9. *              entries   - the number of entries in the tables
  10. *                          increment this when you add a new value
  11. **********************************************************************/
  12. /* Code    */
  13. arg filepath
  14. /*  Extensions   */
  15. fileext.1 = 'PRG'
  16. fileext.2 = 'CHA'
  17. fileext.3 = 'REP'
  18. fileext.4 = 'TAB'
  19. fileext.5 = 'ME'
  20. fileext.6 = 'APN'
  21. fileext.7 = 'LIB'
  22. fileext.8 = 'WIN'
  23. fileext.9 = 'CMD'
  24. fileext.10 = 'PGM'
  25. fileext.11 = 'APL'
  26. fileext.12 = 'MAK'
  27. fileext.13 = 'MNT'
  28. fileext.14 = 'MNU'
  29. fileext.15 = 'WDW'
  30. fileext.16 = ''
  31. /*  Extended Attributes    */
  32. fileea.1 = 'IBMPROGRAM'
  33. fileea.2 = 'IBMCHART'
  34. fileea.3 = 'IBMREPORT'
  35. fileea.4 = 'IBMTABLE'
  36. fileea.5 = 'Plain Text'
  37. fileea.6 = 'IBMAPPLICATN'
  38. fileea.7 = 'IBMAPPLICATN'
  39. fileea.8 = 'IBMWINDOW'
  40. fileea.9 = 'OS/2 Command File' || x2c(00)
  41. fileea.10 = 'IBMPROGRAM'
  42. fileea.11 = 'IBMAPPLICATN'
  43. fileea.12 = 'IBMMAKE'
  44. fileea.13 = 'IBMSQLSTATEMENT'
  45. fileea.14 = 'IBMMENU'
  46. fileea.15 = 'IBMWINDOW'
  47. fileea.16 = 'IBMTABLE'
  48. /*  No of entries in above tables  */
  49. entries = 16
  50. colon = ':'
  51. bslash= '\'
  52.  
  53.  
  54. /* Register Rexx Functions    */
  55. call RxFuncAdd 'SysPutEA', 'RexxUtil', 'SysPutEA'
  56. call RxFuncAdd 'SysFileTree', 'RexxUtil', 'SysFileTree'
  57.  
  58. /* Set up full EA for SysPutEA function              */
  59. do i = 1 to entries
  60.    fullea.i = 'DFFF00000100FDFF'x || d2c(length(fileea.i)) || '00'x || fileea.i
  61. end
  62. /* Get a list of files with each extension specified */
  63. x = length(filepath)
  64. if x <>  0 then
  65.    if substr(filepath,x,1) <> bslash & substr(filepath,x,1) <> colon then
  66.     filepath = filepath || bslash
  67.  
  68. /* Set rc to 0.  This will be increased if errors occur  */
  69. rc = 0
  70.  
  71. do i = 1 to entries
  72. filespec = filepath || '*.' || fileext.i
  73.    if SysFileTree(filespec,filenames,'FO') = 0 then
  74.       do j = 1 to filenames.0
  75.          x = SysPutEA(filenames.j, ".TYPE", fullea.i)
  76.          if x  <> 0 then do 
  77.             say 'SysPutEA failed for' filenames.j 'Return Code' x
  78.               rc = rc + 1
  79.               end
  80.             else nop
  81.          end 
  82.        else 
  83.      do      /* SysFileTree */
  84.          say 'Directory search failed for filespec'
  85.          rc = 999
  86.          leave
  87.          end
  88.       end     /* do i = 1 to entries */
  89. return rc
  90.