in JetBrains.SbomUtils/src/JetBrains.SbomUtils.Console/Analyzer.cs [53:87]
public int Analyze(string sbom, BatchVerificationParams batchVerificationParams)
{
SbomValidator validator = new SbomValidator(_logger);
SbomReader reader = new SbomReader(_logger);
var sbomModel = reader.LoadSbom(reader.ReadSbom(sbom));
bool success = true;
foreach (var product in batchVerificationParams.Products)
{
_logger.LogInformation("=============== Checking product {product} =================", product.Name);
ValidationResult validationResult;
try
{
using var softwareProvider = CreateInstalledSoftwareProvider(product.RootDirectory);
validationResult = validator.ValidateInstallation(sbomModel, softwareProvider, product.RootPackages, batchVerificationParams.Ignores);
}
catch (Exception ex)
{
validationResult = new ValidationResult(
success: false,
errorMessage: ex.Message,
filesChecked: 0,
filesMissingInSbom: [],
fileVerificationResults: [],
ignoredFiles: []);
}
PrintValidationResult(validationResult);
success &= validationResult.Success;
}
return success ? 0 : 1;
}