diff --git a/shell-completion.yml b/shell-completion.yml index 4fa3db8d9..1c2f414b7 100644 --- a/shell-completion.yml +++ b/shell-completion.yml @@ -14,6 +14,7 @@ Host: - TeamCity - TeamServices - Travis +NoLogo: Plan: Root: Skip: diff --git a/source/Nuke.Common/Execution/BuildManager.cs b/source/Nuke.Common/Execution/BuildManager.cs index 10bc94f6c..2a4079be1 100644 --- a/source/Nuke.Common/Execution/BuildManager.cs +++ b/source/Nuke.Common/Execution/BuildManager.cs @@ -45,8 +45,20 @@ public static int Execute(Expression> defaultTargetExpression Logger.LogLevel = NukeBuild.LogLevel; ToolPathResolver.NuGetPackagesConfigFile = build.NuGetPackagesConfigFile; - Logger.Normal($"NUKE Execution Engine {typeof(BuildManager).Assembly.GetInformationalText()}"); - Logger.Normal(FigletTransform.GetText("NUKE")); + if (!NukeBuild.NoLogo) + { + Logger.Normal(); + Logger.Normal("███╗ ██╗██╗ ██╗██╗ ██╗███████╗"); + Logger.Normal("████╗ ██║██║ ██║██║ ██╔╝██╔════╝"); + Logger.Normal("██╔██╗ ██║██║ ██║█████╔╝ █████╗ "); + Logger.Normal("██║╚██╗██║██║ ██║██╔═██╗ ██╔══╝ "); + Logger.Normal("██║ ╚████║╚██████╔╝██║ ██╗███████╗"); + Logger.Normal("╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝"); + Logger.Normal(); + } + + Logger.Info($"NUKE Execution Engine {typeof(BuildManager).Assembly.GetInformationalText()}"); + Logger.Normal(); build.ExecuteExtensions(); build.ExecutionPlan = ExecutionPlanner.GetExecutionPlan( @@ -127,9 +139,9 @@ string CreateLine(string target, string executionStatus, string duration, string string ToMinutesAndSeconds(TimeSpan duration) => $"{(int) duration.TotalMinutes}:{duration:ss}"; - Logger.Normal(new string(c: '=', count: allColumns)); + Logger.Normal(new string(c: '═', count: allColumns)); Logger.Info(CreateLine("Target", "Status", "Duration")); - Logger.Normal(new string(c: '-', count: allColumns)); + Logger.Normal(new string(c: '─', count: allColumns)); foreach (var target in build.ExecutionPlan) { var line = CreateLine(target.Name, target.Status.ToString(), ToMinutesAndSeconds(target.Duration), target.SkipReason); @@ -149,9 +161,9 @@ string ToMinutesAndSeconds(TimeSpan duration) } } - Logger.Normal(new string(c: '-', count: allColumns)); + Logger.Normal(new string(c: '─', count: allColumns)); Logger.Info(CreateLine("Total", "", ToMinutesAndSeconds(totalDuration))); - Logger.Normal(new string(c: '=', count: allColumns)); + Logger.Normal(new string(c: '═', count: allColumns)); Logger.Normal(); var buildSucceeded = IsSuccessful(build); diff --git a/source/Nuke.Common/NukeBuild.Statics.cs b/source/Nuke.Common/NukeBuild.Statics.cs index 7d187719b..aa6ed412b 100644 --- a/source/Nuke.Common/NukeBuild.Statics.cs +++ b/source/Nuke.Common/NukeBuild.Statics.cs @@ -31,6 +31,7 @@ static NukeBuild() Continue = ParameterService.Instance.GetParameter(() => Continue); Plan = ParameterService.Instance.GetParameter(() => Plan); Help = ParameterService.Instance.GetParameter(() => Help); + NoLogo = ParameterService.Instance.GetParameter(() => NoLogo); } /// @@ -51,7 +52,7 @@ static NukeBuild() public static PathConstruction.AbsolutePath BuildAssemblyDirectory { get; } /// - /// Gets the full path to the build project directory, or null + /// Gets the full path to the build project directory, or null /// [CanBeNull] public static PathConstruction.AbsolutePath BuildProjectDirectory { get; } @@ -80,6 +81,12 @@ static NukeBuild() [Parameter("Shows the help text for this build assembly.")] public static bool Help { get; } + /// + /// Gets a value whether to display the NUKE logo. + /// + [Parameter("Disables displaying the NUKE logo.")] + public static bool NoLogo { get; } + public static bool IsLocalBuild => Host == HostType.Console; public static bool IsServerBuild => Host != HostType.Console;