diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2021-07-01 09:30:10 -0500 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2021-07-02 12:50:09 -0500 |
commit | 9bdf3730cd43e1af8a4ea9be6cf2fba77fcff2d2 (patch) | |
tree | ea2a05de5a8a1dfcb2af8e9e3805fe015729f66a /src/ext/Bal/wixext | |
parent | 8cbfc326cccf8d9b3b63cb6f752fc770f7dee0fc (diff) | |
download | wix-9bdf3730cd43e1af8a4ea9be6cf2fba77fcff2d2.tar.gz wix-9bdf3730cd43e1af8a4ea9be6cf2fba77fcff2d2.tar.bz2 wix-9bdf3730cd43e1af8a4ea9be6cf2fba77fcff2d2.zip |
Add bundle option for command line variables to always be uppercase.
Fixes #3777
Diffstat (limited to 'src/ext/Bal/wixext')
-rw-r--r-- | src/ext/Bal/wixext/BalBurnBackendExtension.cs | 21 | ||||
-rw-r--r-- | src/ext/Bal/wixext/BalErrors.cs | 6 |
2 files changed, 27 insertions, 0 deletions
diff --git a/src/ext/Bal/wixext/BalBurnBackendExtension.cs b/src/ext/Bal/wixext/BalBurnBackendExtension.cs index c6a1e0c1..854b8b35 100644 --- a/src/ext/Bal/wixext/BalBurnBackendExtension.cs +++ b/src/ext/Bal/wixext/BalBurnBackendExtension.cs | |||
@@ -31,6 +31,8 @@ namespace WixToolset.Bal | |||
31 | { | 31 | { |
32 | base.SymbolsFinalized(section); | 32 | base.SymbolsFinalized(section); |
33 | 33 | ||
34 | this.VerifyOverridableVariables(section); | ||
35 | |||
34 | var baSymbol = section.Symbols.OfType<WixBootstrapperApplicationDllSymbol>().SingleOrDefault(); | 36 | var baSymbol = section.Symbols.OfType<WixBootstrapperApplicationDllSymbol>().SingleOrDefault(); |
35 | var baId = baSymbol?.Id?.Id; | 37 | var baId = baSymbol?.Id?.Id; |
36 | if (null == baId) | 38 | if (null == baId) |
@@ -118,6 +120,25 @@ namespace WixToolset.Bal | |||
118 | } | 120 | } |
119 | } | 121 | } |
120 | 122 | ||
123 | private void VerifyOverridableVariables(IntermediateSection section) | ||
124 | { | ||
125 | var bundleSymbol = section.Symbols.OfType<WixBundleSymbol>().Single(); | ||
126 | if (bundleSymbol.CommandLineVariables != WixBundleCommandLineVariables.UpperCase) | ||
127 | { | ||
128 | return; | ||
129 | } | ||
130 | |||
131 | var overridableVariableSymbols = section.Symbols.OfType<WixStdbaOverridableVariableSymbol>().ToList(); | ||
132 | foreach (var overridableVariableSymbol in overridableVariableSymbols) | ||
133 | { | ||
134 | var upperName = overridableVariableSymbol.Name.ToUpperInvariant(); | ||
135 | if (upperName != overridableVariableSymbol.Name) | ||
136 | { | ||
137 | this.Messaging.Write(BalErrors.NonUpperCaseOverridableVariable(overridableVariableSymbol.SourceLineNumbers, overridableVariableSymbol.Name, upperName)); | ||
138 | } | ||
139 | } | ||
140 | } | ||
141 | |||
121 | private void VerifyPrereqPackages(IntermediateSection section, bool isDNC) | 142 | private void VerifyPrereqPackages(IntermediateSection section, bool isDNC) |
122 | { | 143 | { |
123 | var prereqInfoSymbols = section.Symbols.OfType<WixMbaPrereqInformationSymbol>().ToList(); | 144 | var prereqInfoSymbols = section.Symbols.OfType<WixMbaPrereqInformationSymbol>().ToList(); |
diff --git a/src/ext/Bal/wixext/BalErrors.cs b/src/ext/Bal/wixext/BalErrors.cs index bc0186c1..e9f68b24 100644 --- a/src/ext/Bal/wixext/BalErrors.cs +++ b/src/ext/Bal/wixext/BalErrors.cs | |||
@@ -38,6 +38,11 @@ namespace WixToolset.Bal | |||
38 | return Message(sourceLineNumbers, Ids.MultiplePrereqLicenses, "There may only be one package in the bundle that has either the PrereqLicenseFile attribute or the PrereqLicenseUrl attribute."); | 38 | return Message(sourceLineNumbers, Ids.MultiplePrereqLicenses, "There may only be one package in the bundle that has either the PrereqLicenseFile attribute or the PrereqLicenseUrl attribute."); |
39 | } | 39 | } |
40 | 40 | ||
41 | public static Message NonUpperCaseOverridableVariable(SourceLineNumber sourceLineNumbers, string name, string expectedName) | ||
42 | { | ||
43 | return Message(sourceLineNumbers, Ids.NonUpperCaseOverridableVariable, "Overridable variable '{0}' must be '{1}' with Bundle/@CommandLineVariables value 'upperCase'.", name, expectedName); | ||
44 | } | ||
45 | |||
41 | private static Message Message(SourceLineNumber sourceLineNumber, Ids id, string format, params object[] args) | 46 | private static Message Message(SourceLineNumber sourceLineNumber, Ids id, string format, params object[] args) |
42 | { | 47 | { |
43 | return new Message(sourceLineNumber, MessageLevel.Error, (int)id, format, args); | 48 | return new Message(sourceLineNumber, MessageLevel.Error, (int)id, format, args); |
@@ -56,6 +61,7 @@ namespace WixToolset.Bal | |||
56 | MultipleBAFunctions = 6804, | 61 | MultipleBAFunctions = 6804, |
57 | BAFunctionsPayloadRequiredInUXContainer = 6805, | 62 | BAFunctionsPayloadRequiredInUXContainer = 6805, |
58 | MissingDNCPrereq = 6806, | 63 | MissingDNCPrereq = 6806, |
64 | NonUpperCaseOverridableVariable = 6807, | ||
59 | } | 65 | } |
60 | } | 66 | } |
61 | } | 67 | } |