From a1307cd4e76a89598c53cb68309358a7012db553 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Fri, 9 Sep 2022 16:03:29 -0500 Subject: Move `Bundle/@CommandLineVariables` into Bal.wixext. Implements 6858 --- .../WixToolset.Mba.Core/OverridableVariables.cs | 44 ++++++++++++---------- 1 file changed, 25 insertions(+), 19 deletions(-) (limited to 'src/api/burn/WixToolset.Mba.Core/OverridableVariables.cs') diff --git a/src/api/burn/WixToolset.Mba.Core/OverridableVariables.cs b/src/api/burn/WixToolset.Mba.Core/OverridableVariables.cs index 148acb34..121c6aee 100644 --- a/src/api/burn/WixToolset.Mba.Core/OverridableVariables.cs +++ b/src/api/burn/WixToolset.Mba.Core/OverridableVariables.cs @@ -29,37 +29,43 @@ namespace WixToolset.Mba.Core { XmlNamespaceManager namespaceManager = new XmlNamespaceManager(root.NameTable); namespaceManager.AddNamespace("p", BootstrapperApplicationData.XMLNamespace); - XPathNavigator commandLineNode = root.SelectSingleNode("/p:BootstrapperApplicationData/p:CommandLine", namespaceManager); + XPathNavigator commandLineNode = root.SelectSingleNode("/p:BootstrapperApplicationData/p:WixStdbaCommandLine", namespaceManager); XPathNodeIterator nodes = root.Select("/p:BootstrapperApplicationData/p:WixStdbaOverridableVariable", namespaceManager); var overridableVariables = new OverridableVariablesInfo(); + IEqualityComparer variableNameComparer; if (commandLineNode == null) - { - throw new Exception("Failed to select command line information."); - } - - string variablesValue = BootstrapperApplicationData.GetAttribute(commandLineNode, "Variables"); - - if (variablesValue == null) - { - throw new Exception("Failed to get command line variable type."); - } - - if (variablesValue.Equals("upperCase", StringComparison.InvariantCulture)) - { - overridableVariables.CommandLineType = VariableCommandLineType.UpperCase; - } - else if (variablesValue.Equals("caseSensitive", StringComparison.InvariantCulture)) { overridableVariables.CommandLineType = VariableCommandLineType.CaseSensitive; + variableNameComparer = StringComparer.InvariantCulture; } else { - throw new Exception(string.Format("Unknown command line variable type: '{0}'", variablesValue)); + string variablesValue = BootstrapperApplicationData.GetAttribute(commandLineNode, "Variables"); + + if (variablesValue == null) + { + throw new Exception("Failed to get command line variable type."); + } + + if (variablesValue.Equals("caseInsensitive", StringComparison.InvariantCulture)) + { + overridableVariables.CommandLineType = VariableCommandLineType.CaseInsensitive; + variableNameComparer = StringComparer.InvariantCultureIgnoreCase; + } + else if (variablesValue.Equals("caseSensitive", StringComparison.InvariantCulture)) + { + overridableVariables.CommandLineType = VariableCommandLineType.CaseSensitive; + variableNameComparer = StringComparer.InvariantCulture; + } + else + { + throw new Exception(String.Format("Unknown command line variable type: '{0}'", variablesValue)); + } } - overridableVariables.Variables = new Dictionary(); + overridableVariables.Variables = new Dictionary(variableNameComparer); foreach (XPathNavigator node in nodes) { -- cgit v1.2.3-55-g6feb