using System.Text.RegularExpressions; using MalwareMultiScan.Backends.Backends.Abstracts; using Microsoft.Extensions.Logging; namespace MalwareMultiScan.Backends.Backends.Implementations { public class ClamavScanBackend : AbstractLocalProcessScanBackend { public ClamavScanBackend(ILogger logger) : base(logger) { } public override string Id { get; } = "clamav"; protected override string BackendPath { get; } = "/usr/bin/clamscan"; protected override Regex MatchRegex { get; } = new Regex(@"(\S+): (?[\S]+) FOUND", RegexOptions.Compiled | RegexOptions.Multiline); protected override bool ThrowOnNonZeroExitCode { get; } = false; protected override string GetBackendArguments(string path) { return $"--no-summary {path}"; } } }