Skip to content

Commit b8de40a

Browse files
committed
fixed coalesce macro behavior
1 parent 8c70632 commit b8de40a

File tree

1 file changed

+10
-9
lines changed
  • src/Microsoft.TemplateEngine.Orchestrator.RunnableProjects/Macros

1 file changed

+10
-9
lines changed

src/Microsoft.TemplateEngine.Orchestrator.RunnableProjects/Macros/CoalesceMacro.cs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,23 @@ public override void Evaluate(IEngineEnvironmentSettings environmentSettings, IV
1919
{
2020
if (variableCollection.TryGetValue(config.SourceVariableName, out object currentSourceValue) && currentSourceValue != null)
2121
{
22-
variableCollection[config.VariableName] = currentSourceValue;
23-
environmentSettings.Host.Logger.LogDebug("[{macro}]: Assigned variable '{var}' to '{value}'.", nameof(CoalesceMacro), config.VariableName, currentSourceValue);
24-
return;
22+
if (config.DefaultValue != null && currentSourceValue.Equals(config.DefaultValue))
23+
{
24+
environmentSettings.Host.Logger.LogDebug("[{macro}]: '{var}': source value '{source}' is not used, because it is equal to default value '{default}'.", nameof(CoalesceMacro), config.VariableName, currentSourceValue, config.DefaultValue);
25+
}
26+
else
27+
{
28+
variableCollection[config.VariableName] = currentSourceValue;
29+
environmentSettings.Host.Logger.LogDebug("[{macro}]: Assigned variable '{var}' to '{value}'.", nameof(CoalesceMacro), config.VariableName, currentSourceValue);
30+
return;
31+
}
2532
}
2633
if (variableCollection.TryGetValue(config.FallbackVariableName, out object currentFallbackValue) && currentFallbackValue != null)
2734
{
2835
variableCollection[config.VariableName] = currentFallbackValue;
2936
environmentSettings.Host.Logger.LogDebug("[{macro}]: Assigned variable '{var}' to fallback value '{value}'.", nameof(CoalesceMacro), config.VariableName, currentFallbackValue);
3037
return;
3138
}
32-
else if (config.DefaultValue != null)
33-
{
34-
variableCollection[config.VariableName] = config.DefaultValue;
35-
environmentSettings.Host.Logger.LogDebug("[{macro}]: Assigned variable '{var}' to default value '{value}'.", nameof(CoalesceMacro), config.VariableName, config.DefaultValue);
36-
return;
37-
}
3839
environmentSettings.Host.Logger.LogDebug("[{macro}]: Variable '{var}' was not assigned, neither source nor fallback variable was found.", nameof(CoalesceMacro), config.VariableName);
3940
}
4041

0 commit comments

Comments
 (0)