# frozen_string_literal: true

namespace :ratonvirus do
  desc "Tests if the antivirus scanner is available and properly configured"
  task test: :environment do
    if Ratonvirus.scanner.available?
      puts "Ratonvirus correctly configured."
    else
      puts "Ratonvirus scanner is not available!"
      puts ""
      puts "Please refer to Ratonvirus documentation for proper configuration."
    end
  rescue StandardError
    puts "Ratonvirus scanner is not configured."
    puts ""
    puts "Please refer to Ratonvirus documentation for proper configuration."
  end

  desc "Scans the given file through the antivirus scanner"
  task scan: :environment do |t, args|
    if args.extras.empty?
      puts "No files given."
      puts "Usage:"
      puts "  #{t.name}[/path/to/first/file.pdf,/path/to/second/file.pdf]"
      next
    end

    args.extras.each do |path|
      if File.file?(path)
        if Ratonvirus.scanner.virus?(path)
          puts "Detected a virus at: #{path}"
        else
          puts "Clean file at: #{path}"
        end
      else
        puts "File does not exist at: #{path}"
      end
    end
  end
end
