From 71e3338346841dcd31f18dd715cfa106b2a6e548 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Mon, 8 Jun 2020 16:19:45 -0700 Subject: Make convert code async --- src/WixToolset.Converters/ConvertCommand.cs | 16 ++++++++++------ .../ConverterIntegrationFixture.cs | 2 +- 2 files changed, 11 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Converters/ConvertCommand.cs b/src/WixToolset.Converters/ConvertCommand.cs index a684bc95..139b5813 100644 --- a/src/WixToolset.Converters/ConvertCommand.cs +++ b/src/WixToolset.Converters/ConvertCommand.cs @@ -5,6 +5,8 @@ namespace WixToolset.Converters using System; using System.Collections.Generic; using System.IO; + using System.Threading; + using System.Threading.Tasks; using System.Xml; using WixToolset.Extensibility.Data; using WixToolset.Extensibility.Services; @@ -110,12 +112,12 @@ namespace WixToolset.Converters } } - public int Execute() + public Task ExecuteAsync(CancellationToken cancellationToken) { if (this.ShowHelp) { DisplayHelp(); - return 1; + return Task.FromResult(1); } // parse the settings if any were specified @@ -133,7 +135,7 @@ namespace WixToolset.Converters var converter = new Wix3Converter(this.Messaging, this.IndentationAmount, this.ErrorsAsWarnings, this.IgnoreErrors); - var errors = this.InspectSubDirectories(converter, Path.GetFullPath(".")); + var errors = this.InspectSubDirectories(converter, Path.GetFullPath("."), cancellationToken); foreach (var searchPattern in this.SearchPatterns) { @@ -144,7 +146,7 @@ namespace WixToolset.Converters } } - return errors != 0 ? 2 : 0; + return Task.FromResult(errors != 0 ? 2 : 0); } private static void DisplayHelp() @@ -202,7 +204,7 @@ namespace WixToolset.Converters /// /// The directory whose sub-directories will be inspected. /// The number of errors that were found. - private int InspectSubDirectories(Wix3Converter converter, string directory) + private int InspectSubDirectories(Wix3Converter converter, string directory, CancellationToken cancellationToken) { var errors = 0; @@ -210,6 +212,8 @@ namespace WixToolset.Converters { foreach (var sourceFilePath in GetFiles(directory, searchPattern)) { + cancellationToken.ThrowIfCancellationRequested(); + var file = new FileInfo(sourceFilePath); if (!this.ExemptFiles.Contains(file.Name.ToUpperInvariant())) @@ -224,7 +228,7 @@ namespace WixToolset.Converters { foreach (var childDirectoryPath in Directory.GetDirectories(directory)) { - errors += this.InspectSubDirectories(converter, childDirectoryPath); + errors += this.InspectSubDirectories(converter, childDirectoryPath, cancellationToken); } } diff --git a/src/test/WixToolsetTest.Converters/ConverterIntegrationFixture.cs b/src/test/WixToolsetTest.Converters/ConverterIntegrationFixture.cs index 6138fd2b..860c195f 100644 --- a/src/test/WixToolsetTest.Converters/ConverterIntegrationFixture.cs +++ b/src/test/WixToolsetTest.Converters/ConverterIntegrationFixture.cs @@ -158,7 +158,7 @@ namespace WixToolsetTest.Converters targetFile }, serviceProvider, out var messages); - return new WixRunnerResult { ExitCode = exitCode, Messages = messages.ToArray() }; + return new WixRunnerResult { ExitCode = exitCode.Result, Messages = messages.ToArray() }; } private static void EnsureFixed(string targetFile) -- cgit v1.2.3-55-g6feb