public static int RunConvertFile(ConvertOptions convertOptions) { try { ToolFormatConversionOptions toolFormatConversionOptions = 0; if (convertOptions.PrettyPrint) { toolFormatConversionOptions |= ToolFormatConversionOptions.PrettyPrint; } ; if (convertOptions.Force) { toolFormatConversionOptions |= ToolFormatConversionOptions.OverwriteExistingOutputFile; } ; new ToolFormatConverter().ConvertToStandardFormat( convertOptions.ToolFormat, convertOptions.InputFilePath, convertOptions.OutputFilePath, toolFormatConversionOptions); } catch (Exception ex) { Console.WriteLine(ex.ToString()); return(1); } return(0); }
/// <summary>Converts a tool log file into the SARIF format.</summary> /// <exception cref="ArgumentNullException">Thrown when one or more required arguments are null.</exception> /// <exception cref="ArgumentException">Thrown when one or more arguments have unsupported or /// illegal values.</exception> /// <exception cref="InvalidOperationException">Thrown when the requested operation is invalid.</exception> /// <param name="toolFormat">The tool format of the input file.</param> /// <param name="inputFileName">The input log file name.</param> /// <param name="outputFileName">The name of the file to which the resulting SARIF log shall be /// written. This cannot be a directory.</param> /// <param name="conversionOptions">Options for controlling the conversion.</param> public void ConvertToStandardFormat( ToolFormat toolFormat, string inputFileName, string outputFileName, ToolFormatConversionOptions conversionOptions) { if (toolFormat == ToolFormat.PREfast) { string sarif = ConvertPREfastToStandardFormat(inputFileName); File.WriteAllText(outputFileName, sarif); } if (inputFileName == null) { throw new ArgumentNullException("inputFileName"); } ; if (outputFileName == null) { throw new ArgumentNullException("outputFileName"); } ; if (Directory.Exists(outputFileName)) { throw new ArgumentException("Specified file output path exists but is a directory.", "outputFileName"); } if (!conversionOptions.HasFlag(ToolFormatConversionOptions.OverwriteExistingOutputFile) && File.Exists(outputFileName)) { throw new InvalidOperationException("Output file already exists and option to overwrite was not specified."); } // FileMode settings here will results in an exception being raised if the input // file does not exist, and that an existing output file will be overwritten using (var input = File.OpenRead(inputFileName)) using (var outputTextStream = File.Create(outputFileName)) using (var outputTextWriter = new StreamWriter(outputTextStream)) using (var outputJson = new JsonTextWriter(outputTextWriter)) { if (conversionOptions.HasFlag(ToolFormatConversionOptions.PrettyPrint)) { outputJson.Formatting = Formatting.Indented; } using (var output = new ResultLogJsonWriter(outputJson)) { ConvertToStandardFormat(toolFormat, input, output); } } }
public static int RunConvertFile(ConvertOptions convertOptions) { try { ToolFormatConversionOptions toolFormatConversionOptions = 0; if (convertOptions.PrettyPrint) { toolFormatConversionOptions |= ToolFormatConversionOptions.PrettyPrint; } ; if (convertOptions.Force) { toolFormatConversionOptions |= ToolFormatConversionOptions.OverwriteExistingOutputFile; } ; if (string.IsNullOrEmpty(convertOptions.OutputFilePath)) { convertOptions.OutputFilePath = convertOptions.InputFilePath + ".sarif"; } if (convertOptions.ToolFormat == ToolFormat.PREfast) { string sarif = ToolFormatConverter.ConvertPREfastToStandardFormat(convertOptions.InputFilePath); File.WriteAllText(convertOptions.OutputFilePath, sarif); } else { new ToolFormatConverter().ConvertToStandardFormat( convertOptions.ToolFormat, convertOptions.InputFilePath, convertOptions.OutputFilePath, toolFormatConversionOptions); } } catch (Exception ex) { Console.WriteLine(ex.ToString()); return(1); } return(0); }