# frozen_string_literal: true class ClamavService def self.safe_file?(file_path) return true if !Rails.configuration.x.clamav.enabled FileUtils.chmod(0666, file_path) client = ClamAV::Client.new response = client.execute(ClamAV::Commands::ScanCommand.new(file_path)).first case response when ClamAV::SuccessResponse true when ClamAV::VirusResponse false when ClamAV::ErrorResponse raise "ClamAV ErrorResponse : #{response.error_str}" else raise "ClamAV unkown response #{response.class.name}" end end end