Class: Ddr::Antivirus::ClamdScannerAdapter

Inherits:
ScannerAdapter show all
Defined in:
lib/ddr/antivirus/adapters/clamd_scanner_adapter.rb

Overview

Adapter for clamd client (clamdscan)

Constant Summary collapse

SCANNER =
"clamdscan".freeze

Instance Method Summary collapse

Methods inherited from ScannerAdapter

#config

Instance Method Details

#clamdscan(path) ⇒ Object



26
27
28
29
30
# File 'lib/ddr/antivirus/adapters/clamd_scanner_adapter.rb', line 26

def clamdscan(path)
  make_readable(path) do
    command(path)
  end
end

#scan(path) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/ddr/antivirus/adapters/clamd_scanner_adapter.rb', line 13

def scan(path)
  output, status = clamdscan(path)
  result = ScanResult.new(path, output, version: version, scanned_at: Time.now.utc)
  case status.exitstatus
  when 0
    result
  when 1
    raise VirusFoundError.new(result)
  when 2
    raise ScannerError.new(result)
  end
end

#versionObject



32
33
34
35
# File 'lib/ddr/antivirus/adapters/clamd_scanner_adapter.rb', line 32

def version
  out, err, status = Open3.capture3(SCANNER, "-V")
  out.strip
end