public int Analyze()

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;
  }