Exemple #1
0
        internal static void ConvertToFormat(IConsole console, MSBuildLogFileFormat format, string fileToConvertFilePath, string outputFilePath, bool includeAllTasks)
        {
            if (string.IsNullOrWhiteSpace(outputFilePath))
            {
                outputFilePath = fileToConvertFilePath;
            }

            outputFilePath = Path.ChangeExtension(outputFilePath, TraceFileFormatExtensions[format]);
            console.Out.WriteLine($"Writing:\t{outputFilePath}");

            switch (format)
            {
            case MSBuildLogFileFormat.MSBuildBinaryLog:
                break;

            case MSBuildLogFileFormat.Chromium:
            case MSBuildLogFileFormat.Speedscope:
                Convert(format, fileToConvertFilePath, outputFilePath, includeAllTasks);
                break;

            default:
                // Validation happened way before this, so we shoud never reach this...
                throw new ArgumentException($"Invalid TraceFileFormat \"{format}\"");
            }

            console.Out.WriteLine("Conversion complete");
        }
Exemple #2
0
        private static void Convert(MSBuildLogFileFormat format, string fileToConvertFilePath, string outputFilePath, bool includeAllTasks)
        {
            switch (format)
            {
            case MSBuildLogFileFormat.Chromium:
                var buildEnumerator = new BinlogEnumerable(fileToConvertFilePath);
                ChromiumMSBuildLogWriter.WriteTo(buildEnumerator, outputFilePath, includeAllTasks);
                break;

            case MSBuildLogFileFormat.Speedscope:
                var build = Serialization.Read(fileToConvertFilePath);
                SpeedscopeMSBuildLogWriter.WriteTo(build, outputFilePath, includeAllTasks);
                break;

            default:
                // we should never get here
                throw new ArgumentException($"Invalid MSBuildLogFileFormat: {format}");
            }
        }