home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / FileMover / Dopus5 / vdopus.lzx / VirusChecker_v2.DirectoryOpus < prev    next >
Encoding:
Text File  |  1992-08-19  |  2.1 KB  |  61 lines

  1. /* Rexx */
  2. /**************************************************************************/
  3. /* Pass the files selected in Directory Opus  through Virus Checker       */
  4. /**************************************************************************/
  5.    trace off
  6.    options results
  7.    arg source_dir
  8.  
  9.    address 'dopus_rexx'
  10.    'busy on'
  11.    'status 3'; active_window=result
  12.    suspect_virus='no'
  13.    call virus_check_selected_files(source_dir)
  14.  
  15. exit:
  16.    address 'dopus_rexx'
  17.    'status 13' active_window 'set' source_dir
  18.    if suspect_virus='no' then 'toptext Virus Checker reports no viruses'
  19.    else                       'toptext ALERT - Viruses found'
  20.    'busy off'
  21.    return
  22.  
  23. /**************************************************************************/
  24. /* check all selected files and directories                               */
  25. virus_check_selected_files: procedure expose active_window suspect_virus
  26.    arg this_dir
  27.    selected_files=''
  28.    address 'dopus_rexx'
  29.    'getselectedfiles'
  30.    if result~='RESULT' then selected_files=result
  31.    do while words(selected_files)~=0
  32.       parse var selected_files fnam selected_files
  33.       address 'Virus_Checker'; 'checkfile\'this_dir||fnam
  34.       if result~='RESULT' then call virus_checker_failed(fnam)
  35.       address 'dopus_rexx'; 'selectfile' fnam '0 1'
  36.       end /* do */
  37. /**************************************************************************/
  38. /* Recursively check each selected dir                                    */
  39.    selected_dirs=''
  40.    address 'dopus_rexx'
  41.    'getselecteddirs'
  42.    if result~='RESULT' then selected_dirs=result
  43.    do while words(selected_dirs)~=0
  44.       parse var selected_dirs next_dir selected_dirs
  45.       address 'dopus_rexx'
  46.       'status 13' active_window 'set' this_dir||next_dir'/'
  47.       'all'; 'busy on'
  48.       call virus_check_selected_files(this_dir||next_dir'/')
  49.       end /* do */
  50.    return
  51.  
  52. /**************************************************************************/
  53. /* Virus Checker failed this one                                          */
  54. virus_checker_failed:
  55.    suspect_virus='yes'
  56.    address 'dopus_rexx'
  57.    'request' fnam 'failed' result'. Continue?'
  58.    if rc=0 then signal exit
  59.    return
  60.  
  61.