Ejemplo n.º 1
0
        public int Run(ResultMatchingOptions matchingOptions)
        {
            try
            {
                SarifLog baselineFile = null;
                if (!string.IsNullOrEmpty(matchingOptions.PreviousFilePath))
                {
                    baselineFile = ReadSarifFile <SarifLog>(_fileSystem, matchingOptions.PreviousFilePath);
                }

                string outputFilePath = matchingOptions.OutputFilePath;
                if (string.IsNullOrEmpty(outputFilePath))
                {
                    outputFilePath = Path.GetFileNameWithoutExtension(matchingOptions.PreviousFilePath) + "-annotated.sarif";
                }

                if (!DriverUtilities.ReportWhetherOutputFileCanBeCreated(outputFilePath, matchingOptions.Force, _fileSystem))
                {
                    return(FAILURE);
                }

                var currentSarifLogs = new List <SarifLog>();

                foreach (string currentFilePath in matchingOptions.CurrentFilePaths)
                {
                    currentSarifLogs.Add(ReadSarifFile <SarifLog>(_fileSystem, currentFilePath));
                }

                ISarifLogMatcher matcher = ResultMatchingBaselinerFactory.GetDefaultResultMatchingBaseliner();

                SarifLog output = matcher.Match(new SarifLog[] { baselineFile }, currentSarifLogs).First();

                Newtonsoft.Json.Formatting formatting = matchingOptions.PrettyPrint
                        ? Newtonsoft.Json.Formatting.Indented
                        : Newtonsoft.Json.Formatting.None;

                WriteSarifFile(_fileSystem, output, outputFilePath, formatting);
            }

            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                return(FAILURE);
            }

            return(SUCCESS);
        }
Ejemplo n.º 2
0
        public static int Run(ResultMatchingOptions matchingOptions)
        {
            try
            {
                SarifLog baselineFile = null;
                if (!string.IsNullOrEmpty(matchingOptions.PreviousFilePath))
                {
                    baselineFile = FileHelpers.ReadSarifFile <SarifLog>(matchingOptions.PreviousFilePath);
                }

                string outputFilePath = matchingOptions.OutputFilePath;
                if (string.IsNullOrEmpty(outputFilePath))
                {
                    outputFilePath = Path.GetFileNameWithoutExtension(matchingOptions.PreviousFilePath) + "-annotated.sarif";
                }

                SarifLog currentFile = FileHelpers.ReadSarifFile <SarifLog>(matchingOptions.CurrentFilePath);

                ISarifLogMatcher matcher = ResultMatchingBaselinerFactory.GetDefaultResultMatchingBaseliner();

                SarifLog output = matcher.Match(new SarifLog[] { baselineFile }, new SarifLog[] { currentFile }).First();

                var formatting = matchingOptions.PrettyPrint
                        ? Newtonsoft.Json.Formatting.Indented
                        : Newtonsoft.Json.Formatting.None;

                FileHelpers.WriteSarifFile(output, outputFilePath, formatting);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                return(1);
            }

            return(0);
        }
 public void ConsumeEnvVarsAndInterpretOptions(ResultMatchingOptions resultMatchingOptions)
 {
     ConsumeEnvVarsAndInterpretOptions((CommonOptionsBase)resultMatchingOptions);
 }