diff --git a/src/Cake.Generator.Core.Tests/Unit/CakeGeneratorTests.RunGenerators#CakeScriptHost.g.verified.cs b/src/Cake.Generator.Core.Tests/Unit/CakeGeneratorTests.RunGenerators#CakeScriptHost.g.verified.cs index 34c690f..8ec99fb 100644 --- a/src/Cake.Generator.Core.Tests/Unit/CakeGeneratorTests.RunGenerators#CakeScriptHost.g.verified.cs +++ b/src/Cake.Generator.Core.Tests/Unit/CakeGeneratorTests.RunGenerators#CakeScriptHost.g.verified.cs @@ -46,18 +46,44 @@ private class GeneratorScriptHost(ICakeEngine engine, ICakeContext context, IExe public override async Task RunTargetAsync(string target) { Settings.SetTarget(target); - var report = await Engine.RunTargetAsync(Context, strategy, Settings); - reporter.Write(report); + var report = await internalRunTargetAsync(); return report; } public override async Task RunTargetsAsync(IEnumerable targets) { Settings.SetTargets(targets); - var report = await Engine.RunTargetAsync(Context, strategy, Settings); - reporter.Write(report); + var report = await internalRunTargetAsync(); return report; } + + private async Task internalRunTargetAsync() + { + try + { + var report = await Engine + .RunTargetAsync(Context, strategy, Settings) + .ConfigureAwait(false); + + if (report != null && !report.IsEmpty) + { + reporter.Write(report); + } + + ArgumentNullException.ThrowIfNull(report); + + return report; + } + catch (CakeReportException cre) + { + if (cre.Report != null && !cre.Report.IsEmpty) + { + reporter.Write(cre.Report); + } + + throw; + } + } } /// diff --git a/src/Cake.Generator.Core.Tests/Unit/CakeGeneratorTests.RunGenerators_WithMainMethods_GeneratesMainMethodCalls#CakeScriptHost.g.verified.cs b/src/Cake.Generator.Core.Tests/Unit/CakeGeneratorTests.RunGenerators_WithMainMethods_GeneratesMainMethodCalls#CakeScriptHost.g.verified.cs index f5032b2..cf23a1a 100644 --- a/src/Cake.Generator.Core.Tests/Unit/CakeGeneratorTests.RunGenerators_WithMainMethods_GeneratesMainMethodCalls#CakeScriptHost.g.verified.cs +++ b/src/Cake.Generator.Core.Tests/Unit/CakeGeneratorTests.RunGenerators_WithMainMethods_GeneratesMainMethodCalls#CakeScriptHost.g.verified.cs @@ -47,18 +47,44 @@ private class GeneratorScriptHost(ICakeEngine engine, ICakeContext context, IExe public override async Task RunTargetAsync(string target) { Settings.SetTarget(target); - var report = await Engine.RunTargetAsync(Context, strategy, Settings); - reporter.Write(report); + var report = await internalRunTargetAsync(); return report; } public override async Task RunTargetsAsync(IEnumerable targets) { Settings.SetTargets(targets); - var report = await Engine.RunTargetAsync(Context, strategy, Settings); - reporter.Write(report); + var report = await internalRunTargetAsync(); return report; } + + private async Task internalRunTargetAsync() + { + try + { + var report = await Engine + .RunTargetAsync(Context, strategy, Settings) + .ConfigureAwait(false); + + if (report != null && !report.IsEmpty) + { + reporter.Write(report); + } + + ArgumentNullException.ThrowIfNull(report); + + return report; + } + catch (CakeReportException cre) + { + if (cre.Report != null && !cre.Report.IsEmpty) + { + reporter.Write(cre.Report); + } + + throw; + } + } } /// diff --git a/src/Cake.Generator.Core.Tests/Unit/CakeGeneratorTests.RunGenerators_WithModules#CakeScriptHost.g.verified.cs b/src/Cake.Generator.Core.Tests/Unit/CakeGeneratorTests.RunGenerators_WithModules#CakeScriptHost.g.verified.cs index 34c690f..8ec99fb 100644 --- a/src/Cake.Generator.Core.Tests/Unit/CakeGeneratorTests.RunGenerators_WithModules#CakeScriptHost.g.verified.cs +++ b/src/Cake.Generator.Core.Tests/Unit/CakeGeneratorTests.RunGenerators_WithModules#CakeScriptHost.g.verified.cs @@ -46,18 +46,44 @@ private class GeneratorScriptHost(ICakeEngine engine, ICakeContext context, IExe public override async Task RunTargetAsync(string target) { Settings.SetTarget(target); - var report = await Engine.RunTargetAsync(Context, strategy, Settings); - reporter.Write(report); + var report = await internalRunTargetAsync(); return report; } public override async Task RunTargetsAsync(IEnumerable targets) { Settings.SetTargets(targets); - var report = await Engine.RunTargetAsync(Context, strategy, Settings); - reporter.Write(report); + var report = await internalRunTargetAsync(); return report; } + + private async Task internalRunTargetAsync() + { + try + { + var report = await Engine + .RunTargetAsync(Context, strategy, Settings) + .ConfigureAwait(false); + + if (report != null && !report.IsEmpty) + { + reporter.Write(report); + } + + ArgumentNullException.ThrowIfNull(report); + + return report; + } + catch (CakeReportException cre) + { + if (cre.Report != null && !cre.Report.IsEmpty) + { + reporter.Write(cre.Report); + } + + throw; + } + } } /// diff --git a/src/Cake.Generator.Core/CakeGenerator.Generate.ScriptHost.cs b/src/Cake.Generator.Core/CakeGenerator.Generate.ScriptHost.cs index e02b68c..c77c43e 100644 --- a/src/Cake.Generator.Core/CakeGenerator.Generate.ScriptHost.cs +++ b/src/Cake.Generator.Core/CakeGenerator.Generate.ScriptHost.cs @@ -76,18 +76,44 @@ private class GeneratorScriptHost(ICakeEngine engine, ICakeContext context, IExe public override async Task RunTargetAsync(string target) { Settings.SetTarget(target); - var report = await Engine.RunTargetAsync(Context, strategy, Settings); - reporter.Write(report); + var report = await internalRunTargetAsync(); return report; } public override async Task RunTargetsAsync(IEnumerable targets) { Settings.SetTargets(targets); - var report = await Engine.RunTargetAsync(Context, strategy, Settings); - reporter.Write(report); + var report = await internalRunTargetAsync(); return report; } + + private async Task internalRunTargetAsync() + { + try + { + var report = await Engine + .RunTargetAsync(Context, strategy, Settings) + .ConfigureAwait(false); + + if (report != null && !report.IsEmpty) + { + reporter.Write(report); + } + + ArgumentNullException.ThrowIfNull(report); + + return report; + } + catch (CakeReportException cre) + { + if (cre.Report != null && !cre.Report.IsEmpty) + { + reporter.Write(cre.Report); + } + + throw; + } + } } """);