class LIBIS::Workflow::Tasks::VirusChecker

Public Instance Methods

process_item(item) click to toggle source
# File lib/libis/workflow/tasks/virus_checker.rb, line 14
def process_item(item)

  return unless item_type? FileItem, item
  return unless item_type? WorkItem, item
  return unless item.options[:filename]

  if item.options[:virus_check]
    debug 'Skipping file. Already checked.'
    return
  end

  debug 'Scanning file for virusses'

  cmd_options = Config.virusscanner[:options]
  status, _, err = capture_cmd Config.virusscanner[:command], *cmd_options, item.filename
  raise WorkflowError, "Error during viruscheck: #{err}" unless status

  item.options[:virus_check] = true
  info 'File is clean'

end