Use new logic for -sw in DecompileCommand.
Sean Hall committed
Jan 19, 2021 at 15:38 UTC
453107d72fa96e7b942ef4698ab10e4bcac91d2e
3 files changed
+30
-12
src/WixToolset.Core/CommandLine/DecompileCommand.cs
+27
-10
@@ -128,19 +128,19 @@ namespace WixToolset.Core.CommandLine
128
case "verbose":
129
this.Messaging.ShowVerboseMessages = true;
130
return true;
131
+ }
132
132
- case "sw":
133
- case "suppresswarning":
134
- var warning = parser.GetNextArgumentOrError(arg);
135
- if (!String.IsNullOrEmpty(warning))
136
- {
137
- var warningNumber = Convert.ToInt32(warning);
138
- this.Messaging.SuppressWarningMessage(warningNumber);
139
- }
133
+ if (parameter.StartsWith("sw"))
134
+ {
135
+ this.ParseSuppressWarning(parameter, "sw".Length, parser);
136
return true;
137
}
142
-
143
- if (parameter.StartsWith("wx"))
138
+ else if (parameter.StartsWith("suppresswarning"))
139
+ {
140
+ this.ParseSuppressWarning(parameter, "suppresswarning".Length, parser);
141
+ return true;
142
+ }
143
+ else if (parameter.StartsWith("wx"))
144
{
145
this.ParseWarningAsError(parameter, "wx".Length, parser);
146
return true;
@@ -218,6 +218,23 @@ namespace WixToolset.Core.CommandLine
218
return String.IsNullOrEmpty(this.OutputFile) ? Path.ChangeExtension(this.DecompileFilePath, ".wxs") : this.OutputFile;
219
}
220
221
+ private void ParseSuppressWarning(string parameter, int offset, ICommandLineParser parser)
222
+ {
223
+ var paramArg = parameter.Substring(offset);
224
+ if (paramArg.Length == 0)
225
+ {
226
+ this.Messaging.SuppressAllWarnings = true;
227
+ }
228
+ else if (Int32.TryParse(paramArg, out var suppressWarning) && suppressWarning > 0)
229
+ {
230
+ this.Messaging.SuppressWarningMessage(suppressWarning);
231
+ }
232
+ else
233
+ {
234
+ parser.ReportErrorArgument(parameter, ErrorMessages.IllegalSuppressWarningId(paramArg));
235
+ }
236
+ }
237
+
238
private void ParseWarningAsError(string parameter, int offset, ICommandLineParser parser)
239
{
240
var paramArg = parameter.Substring(offset);
src/test/WixToolsetTest.CoreIntegration/CustomTableFixture.cs
+2
-1
@@ -216,9 +216,10 @@ namespace WixToolsetTest.CoreIntegration
216
result.AssertSuccess();
217
Assert.True(File.Exists(msiPath));
218
219
- result = WixRunner.Execute(false, new[]
219
+ result = WixRunner.Execute(new[]
220
{
221
"decompile", msiPath,
222
+ "-sw1060",
223
"-intermediateFolder", intermediateFolder,
224
"-o", decompiledWxsPath
225
});
src/test/WixToolsetTest.CoreIntegration/DecompileFixture.cs
+1
-1
@@ -20,7 +20,7 @@ namespace WixToolsetTest.CoreIntegration
20
var intermediateFolder = fs.GetFolder();
21
var outputPath = Path.Combine(intermediateFolder, @"Actual.wxs");
22
23
- var result = WixRunner.Execute(false, new[]
23
+ var result = WixRunner.Execute(new[]
24
{
25
"decompile",
26
Path.Combine(folder, msiName),