aboutsummaryrefslogtreecommitdiff
path: root/src/test/Example.Extension/ExamplePreprocessorExtensionAndCommandLine.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/Example.Extension/ExamplePreprocessorExtensionAndCommandLine.cs')
-rw-r--r--src/test/Example.Extension/ExamplePreprocessorExtensionAndCommandLine.cs50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/test/Example.Extension/ExamplePreprocessorExtensionAndCommandLine.cs b/src/test/Example.Extension/ExamplePreprocessorExtensionAndCommandLine.cs
new file mode 100644
index 00000000..6f86e20d
--- /dev/null
+++ b/src/test/Example.Extension/ExamplePreprocessorExtensionAndCommandLine.cs
@@ -0,0 +1,50 @@
1// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3namespace Example.Extension
4{
5 using System;
6 using System.Collections.Generic;
7 using WixToolset.Extensibility;
8 using WixToolset.Extensibility.Services;
9
10 internal class ExamplePreprocessorExtensionAndCommandLine : BasePreprocessorExtension, IExtensionCommandLine
11 {
12 private string exampleValueFromCommandLine;
13
14 public IEnumerable<ExtensionCommandLineSwitch> CommandLineSwitches => throw new NotImplementedException();
15
16 public ExamplePreprocessorExtensionAndCommandLine()
17 {
18 this.Prefixes = new[] { "ex" };
19 }
20
21 public void PreParse(ICommandLineContext context)
22 {
23 }
24
25 public bool TryParseArgument(IParseCommandLine parseCommandLine, string arg)
26 {
27 if (parseCommandLine.IsSwitch(arg) && arg.Substring(1).Equals("example", StringComparison.OrdinalIgnoreCase))
28 {
29 this.exampleValueFromCommandLine = parseCommandLine.GetNextArgumentOrError(arg);
30 return true;
31 }
32
33 return false;
34 }
35
36 public void PostParse()
37 {
38 }
39
40 public override string GetVariableValue(string prefix, string name)
41 {
42 if (prefix == "ex" && "test".Equals(name, StringComparison.OrdinalIgnoreCase))
43 {
44 return String.IsNullOrWhiteSpace(this.exampleValueFromCommandLine) ? "(null)" : this.exampleValueFromCommandLine;
45 }
46
47 return null;
48 }
49 }
50} \ No newline at end of file