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