Skip to content

Commit 11d21fc

Browse files
Morten Larsenmatkoch
authored andcommitted
Allow setting ProcessCustomLogger in ToolSettings (#1069)
1 parent cbd986d commit 11d21fc

File tree

11 files changed

+22
-11
lines changed

11 files changed

+22
-11
lines changed

source/Nuke.CodeGeneration/Generators/DataClassGenerator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ private static DataClassWriter WriteProcessCustomLogger(this DataClassWriter wri
9999

100100
var tool = writer.DataClass.Tool;
101101
var logger = $"{tool.GetClassName()}.{tool.Name}Logger";
102-
return writer.WriteLine($"public override Action<OutputType, string> ProcessCustomLogger => {logger};");
102+
return writer.WriteLine($"public override Action<OutputType, string> ProcessCustomLogger => base.ProcessCustomLogger ?? {logger};");
103103
}
104104

105105
private static void WritePropertyDeclaration(DataClassWriter writer, Property property)

source/Nuke.CodeGeneration/Generators/TaskGenerator.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ private static void WriteGenericTask(this ToolWriter writer)
5151
"int? timeout = null",
5252
"bool? logOutput = null",
5353
"bool? logInvocation = null",
54-
"Func<string, string> outputFilter = null"
54+
"Func<string, string> outputFilter = null",
55+
"Action<OutputType, string> customLogger = null"
5556
};
5657
var arguments = new[]
5758
{
@@ -62,7 +63,7 @@ private static void WriteGenericTask(this ToolWriter writer)
6263
"timeout",
6364
"logOutput",
6465
"logInvocation",
65-
$"{tool.Name}Logger",
66+
$"customLogger ?? {tool.Name}Logger",
6667
"outputFilter"
6768
};
6869
writer

source/Nuke.Common/Tooling/ToolSettings.Standard.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,5 +164,15 @@ public static T SetProcessArgumentConfigurator<T>(this T toolSettings, [CanBeNul
164164
newToolSettings.ProcessArgumentConfigurator = argumentConfigurator;
165165
return newToolSettings;
166166
}
167+
168+
///<summary>Sets <see cref="ToolSettings.ProcessCustomLogger"/> -- <inheritdoc cref="ToolSettings.ProcessCustomLogger" /></summary>
169+
[Pure]
170+
public static T SetProcessCustomLogger<T>(this T toolSettings, [CanBeNull] Action<OutputType, string> customLogger)
171+
where T : ToolSettings
172+
{
173+
var newToolSettings = toolSettings.NewInstance();
174+
newToolSettings.ProcessCustomLogger = customLogger;
175+
return newToolSettings;
176+
}
167177
}
168178
}

source/Nuke.Common/Tooling/ToolSettings.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ protected ToolSettings()
3131
public bool? ProcessLogOutput { get; internal set; }
3232
public bool? ProcessLogInvocation { get; internal set; }
3333

34-
public abstract Action<OutputType, string> ProcessCustomLogger { get; }
34+
public virtual Action<OutputType, string> ProcessCustomLogger { get; internal set; }
3535

3636
[NonSerialized]
3737
private Func<Arguments, Arguments> _processArgumentConfigurator = x => x;

source/Nuke.Common/Tools/Docker/CliSettings.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@ public Arguments CreateArguments()
1515
return ConfigureProcessArguments(new Arguments());
1616
}
1717

18-
public override Action<OutputType, string> ProcessCustomLogger => throw new NotSupportedException();
18+
public override Action<OutputType, string> ProcessCustomLogger => base.ProcessCustomLogger ?? throw new NotSupportedException();
1919
}
2020
}

source/Nuke.Common/Tools/Helm/HelmCommonSettings.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@ internal Arguments CreateArguments()
1515
return ConfigureProcessArguments(new Arguments());
1616
}
1717

18-
public override Action<OutputType, string> ProcessCustomLogger { get; }
18+
public override Action<OutputType, string> ProcessCustomLogger { get; internal set; }
1919
}
2020
}

source/Nuke.Common/Tools/Helm/HelmToolSettings.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public class HelmToolSettings : ToolSettings
1818
/// </summary>
1919
public HelmCommonSettings CommonSettings { get; internal set; }
2020

21-
public override Action<OutputType, string> ProcessCustomLogger { get; }
21+
public override Action<OutputType, string> ProcessCustomLogger { get; internal set; }
2222

2323
protected override Arguments ConfigureProcessArguments([NotNull] Arguments arguments)
2424
{

source/Nuke.Common/Tools/Kubernetes/KubernetesCommonSettings.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@ internal Arguments CreateArguments()
1515
return ConfigureProcessArguments(new Arguments());
1616
}
1717

18-
public override Action<OutputType, string> ProcessCustomLogger { get; }
18+
public override Action<OutputType, string> ProcessCustomLogger { get; internal set; }
1919
}
2020
}

source/Nuke.Common/Tools/NSwag/NSwagSettings.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public class NSwagSettings : ToolSettings
2121

2222
private bool IsNetCore => NSwagRuntime != null && NSwagRuntime.StartsWith("Net", StringComparison.OrdinalIgnoreCase);
2323

24-
public override Action<OutputType, string> ProcessCustomLogger { get; }
24+
public override Action<OutputType, string> ProcessCustomLogger { get; internal set; }
2525

2626
[NotNull]
2727
protected override Arguments ConfigureProcessArguments([NotNull] Arguments arguments)

source/Nuke.Common/Tools/ReSharper/ReSharperTasks.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,6 @@ private static string GetShadowDirectory(ReSharperSettingsBase toolSettings, str
7373

7474
partial class ReSharperSettingsBase
7575
{
76-
public override Action<OutputType, string> ProcessCustomLogger => ProcessTasks.DefaultLogger;
76+
public override Action<OutputType, string> ProcessCustomLogger => base.ProcessCustomLogger ?? ProcessTasks.DefaultLogger;
7777
}
7878
}

0 commit comments

Comments
 (0)