private static Task AnalyzeBatch()

in JetBrains.SbomUtils/src/JetBrains.SbomUtils.Console/Program.cs [97:132]


    private static Task<int> AnalyzeBatch(string sbom, string jsonConfig, bool verbose)
    {
        using ILoggerFactory factory = LoggerFactory.Create(builder => builder.AddFilter(level => level >= LogLevel.Information || verbose).AddConsole());
        var logger = factory.CreateLogger<SbomValidator>();

        if (!File.Exists(jsonConfig))
        {
            logger.LogError("Provided path {path} to the json configuration file doesn't exist", jsonConfig);
            return Task.FromResult((int)ExitCodes.ArgumentsError);
        }

        BatchVerificationParams? verificationParams = null;

        try
        {
            using (StreamReader file = System.IO.File.OpenText(jsonConfig))
            {
                JsonSerializer serializer = new JsonSerializer();
                verificationParams = serializer.Deserialize<BatchVerificationParams>(new JsonTextReader(file));
            }

            if (verificationParams == null)
            {
                logger.LogError("Failed to parse SBOM");
                return Task.FromResult((int)ExitCodes.ArgumentsError);
            }
        }
        catch (Exception e)
        {
            throw new SbomValidationException($"Failed to parse SBOM: {e.Message}", e);
        }

        var analyzer = new Analyzer(logger);

        return Task.FromResult(analyzer.Analyze(sbom, verificationParams));
    }