@joebigelow / wix / commits / 71e33383

Make convert code async

Rob Mensching committed Jun 8, 2020 at 16:19 UTC 71e3338346841dcd31f18dd715cfa106b2a6e548
2 files changed +11 -7
src/WixToolset.Converters/ConvertCommand.cs
+10 -6
@@ -5,6 +5,8 @@ namespace WixToolset.Converters
5 using System;
6 using System.Collections.Generic;
7 using System.IO;
8 + using System.Threading;
9 + using System.Threading.Tasks;
10 using System.Xml;
11 using WixToolset.Extensibility.Data;
12 using WixToolset.Extensibility.Services;
@@ -110,12 +112,12 @@ namespace WixToolset.Converters
112 }
113 }
114
113 - public int Execute()
115 + public Task<int> ExecuteAsync(CancellationToken cancellationToken)
116 {
117 if (this.ShowHelp)
118 {
119 DisplayHelp();
118 - return 1;
120 + return Task.FromResult(1);
121 }
122
123 // parse the settings if any were specified
@@ -133,7 +135,7 @@ namespace WixToolset.Converters
135
136 var converter = new Wix3Converter(this.Messaging, this.IndentationAmount, this.ErrorsAsWarnings, this.IgnoreErrors);
137
136 - var errors = this.InspectSubDirectories(converter, Path.GetFullPath("."));
138 + var errors = this.InspectSubDirectories(converter, Path.GetFullPath("."), cancellationToken);
139
140 foreach (var searchPattern in this.SearchPatterns)
141 {
@@ -144,7 +146,7 @@ namespace WixToolset.Converters
146 }
147 }
148
147 - return errors != 0 ? 2 : 0;
149 + return Task.FromResult(errors != 0 ? 2 : 0);
150 }
151
152 private static void DisplayHelp()
@@ -202,7 +204,7 @@ namespace WixToolset.Converters
204 /// </summary>
205 /// <param name="directory">The directory whose sub-directories will be inspected.</param>
206 /// <returns>The number of errors that were found.</returns>
205 - private int InspectSubDirectories(Wix3Converter converter, string directory)
207 + private int InspectSubDirectories(Wix3Converter converter, string directory, CancellationToken cancellationToken)
208 {
209 var errors = 0;
210
@@ -210,6 +212,8 @@ namespace WixToolset.Converters
212 {
213 foreach (var sourceFilePath in GetFiles(directory, searchPattern))
214 {
215 + cancellationToken.ThrowIfCancellationRequested();
216 +
217 var file = new FileInfo(sourceFilePath);
218
219 if (!this.ExemptFiles.Contains(file.Name.ToUpperInvariant()))
@@ -224,7 +228,7 @@ namespace WixToolset.Converters
228 {
229 foreach (var childDirectoryPath in Directory.GetDirectories(directory))
230 {
227 - errors += this.InspectSubDirectories(converter, childDirectoryPath);
231 + errors += this.InspectSubDirectories(converter, childDirectoryPath, cancellationToken);
232 }
233 }
234
src/test/WixToolsetTest.Converters/ConverterIntegrationFixture.cs
+1 -1
@@ -158,7 +158,7 @@ namespace WixToolsetTest.Converters
158 targetFile
159 }, serviceProvider, out var messages);
160
161 - return new WixRunnerResult { ExitCode = exitCode, Messages = messages.ToArray() };
161 + return new WixRunnerResult { ExitCode = exitCode.Result, Messages = messages.ToArray() };
162 }
163
164 private static void EnsureFixed(string targetFile)