using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using StellaOps.Scanner.Analyzers.OS.Abstractions;
using StellaOps.Scanner.Analyzers.OS.Plugin;
namespace StellaOps.Scanner.Analyzers.OS.Homebrew;
///
/// Plugin that registers the Homebrew package analyzer for macOS Cellar discovery.
///
public sealed class HomebrewAnalyzerPlugin : IOSAnalyzerPlugin
{
///
public string Name => "StellaOps.Scanner.Analyzers.OS.Homebrew";
///
public bool IsAvailable(IServiceProvider services) => services is not null;
///
public IOSPackageAnalyzer CreateAnalyzer(IServiceProvider services)
{
ArgumentNullException.ThrowIfNull(services);
var loggerFactory = services.GetRequiredService();
return new HomebrewPackageAnalyzer(loggerFactory.CreateLogger());
}
}