Skip to content

Commit 44eb49d

Browse files
committed
Fix --version and --help being too noisy
1 parent 60309b3 commit 44eb49d

File tree

7 files changed

+53
-15
lines changed

7 files changed

+53
-15
lines changed

src/Elastic.Documentation.ServiceDefaults/AppDefaultsExtensions.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313

1414
namespace Elastic.Documentation.ServiceDefaults;
1515

16+
public record CliInvocation(bool IsHelpOrVersion);
17+
1618
public static class AppDefaultsExtensions
1719
{
1820
public static TBuilder AddDocumentationServiceDefaults<TBuilder>(this TBuilder builder) where TBuilder : IHostApplicationBuilder
@@ -26,7 +28,7 @@ public static TBuilder AddDocumentationServiceDefaults<TBuilder>(this TBuilder b
2628
public static TBuilder AddDocumentationServiceDefaults<TBuilder>(this TBuilder builder, ref string[] args, LogLevel? defaultLogLevel = null, Action<IServiceCollection, ConfigurationFileProvider>? configure = null) where TBuilder : IHostApplicationBuilder
2729
{
2830
var logLevel = defaultLogLevel ?? LogLevel.Information;
29-
GlobalCommandLine.Process(ref args, ref logLevel, out var skipPrivateRepositories);
31+
GlobalCommandLine.Process(ref args, ref logLevel, out var skipPrivateRepositories, out var isHelpOrVersion);
3032

3133
var services = builder.Services;
3234
_ = services
@@ -36,6 +38,7 @@ public static TBuilder AddDocumentationServiceDefaults<TBuilder>(this TBuilder b
3638
configure?.Invoke(s, p);
3739
});
3840
_ = builder.Services.AddElasticDocumentationLogging(logLevel);
41+
_ = services.AddSingleton(new CliInvocation(isHelpOrVersion));
3942

4043
return builder.AddServiceDefaults();
4144
}

src/Elastic.Documentation/GlobalCommandLine.cs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,15 @@ namespace Elastic.Documentation;
88

99
public static class GlobalCommandLine
1010
{
11-
public static void Process(ref string[] args, ref LogLevel defaultLogLevel, out bool skipPrivateRepositories)
11+
public static void Process(
12+
ref string[] args,
13+
ref LogLevel defaultLogLevel,
14+
out bool skipPrivateRepositories,
15+
out bool isHelpOrVersion
16+
)
1217
{
1318
skipPrivateRepositories = false;
19+
isHelpOrVersion = false;
1420
var newArgs = new List<string>();
1521
for (var i = 0; i < args.Length; i++)
1622
{
@@ -22,8 +28,11 @@ public static void Process(ref string[] args, ref LogLevel defaultLogLevel, out
2228
}
2329
else if (args[i] == "--skip-private-repositories")
2430
skipPrivateRepositories = true;
25-
else if (args[i] == "--inject")
26-
skipPrivateRepositories = true;
31+
else if (args[i] is "--help" or "--version")
32+
{
33+
isHelpOrVersion = true;
34+
newArgs.Add(args[i]);
35+
}
2736
else
2837
newArgs.Add(args[i]);
2938
}

src/tooling/Elastic.Documentation.Tooling/DocumentationTooling.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using Elastic.Documentation.Configuration;
1010
using Elastic.Documentation.Configuration.Versions;
1111
using Elastic.Documentation.Diagnostics;
12+
using Elastic.Documentation.ServiceDefaults;
1213
using Elastic.Documentation.Tooling.Diagnostics.Console;
1314
using Microsoft.Extensions.DependencyInjection;
1415
using Microsoft.Extensions.Hosting;
@@ -33,9 +34,12 @@ public static TBuilder AddDocumentationToolingDefaults<TBuilder>(this TBuilder b
3334
{
3435
var logFactory = sp.GetRequiredService<ILoggerFactory>();
3536
var githubActionsService = sp.GetRequiredService<ICoreService>();
37+
var isHelp = sp.GetRequiredService<CliInvocation>();
38+
if (isHelp.IsHelpOrVersion)
39+
return new DiagnosticsCollector([]);
3640
return new ConsoleDiagnosticsCollector(logFactory, githubActionsService)
3741
{
38-
NoHints = true
42+
NoHints = false
3943
};
4044
})
4145
.AddSingleton(sp =>

src/tooling/Elastic.Documentation.Tooling/Filters/InfoLoggerFilter.cs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,31 @@
55
using System.Reflection;
66
using ConsoleAppFramework;
77
using Elastic.Documentation.Configuration;
8+
using Elastic.Documentation.ServiceDefaults;
89
using Microsoft.Extensions.Logging;
910

1011
namespace Elastic.Documentation.Tooling.Filters;
1112

12-
public class InfoLoggerFilter(ConsoleAppFilter next, ILogger<InfoLoggerFilter> logger, ConfigurationFileProvider fileProvider) : ConsoleAppFilter(next)
13+
public class InfoLoggerFilter(
14+
ConsoleAppFilter next,
15+
ILogger<InfoLoggerFilter> logger,
16+
ConfigurationFileProvider fileProvider,
17+
CliInvocation cliInvocation
18+
)
19+
: ConsoleAppFilter(next)
1320
{
1421
public override async Task InvokeAsync(ConsoleAppContext context, Cancel cancellationToken)
1522
{
23+
var assemblyVersion = Assembly.GetExecutingAssembly().GetCustomAttributes<AssemblyInformationalVersionAttribute>()
24+
.FirstOrDefault()?.InformationalVersion;
25+
if (cliInvocation.IsHelpOrVersion)
26+
{
27+
await Next.InvokeAsync(context, cancellationToken);
28+
return;
29+
}
1630
logger.LogInformation("Configuration source: {ConfigurationSource}", fileProvider.ConfigurationSource.ToStringFast(true));
1731
if (fileProvider.ConfigurationSource == ConfigurationSource.Checkout)
1832
logger.LogInformation("Configuration source git reference: {ConfigurationSourceGitReference}", fileProvider.GitReference);
19-
var assemblyVersion = Assembly.GetExecutingAssembly().GetCustomAttributes<AssemblyInformationalVersionAttribute>()
20-
.FirstOrDefault()?.InformationalVersion;
2133
logger.LogInformation("Version: {Version}", assemblyVersion);
2234
await Next.InvokeAsync(context, cancellationToken);
2335
}

src/tooling/docs-assembler/Program.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,17 @@
4646

4747
await app.RunAsync(args);
4848

49-
internal sealed class ReplaceLogFilter(ConsoleAppFilter next, ILogger<Program> logger)
49+
internal sealed class ReplaceLogFilter(ConsoleAppFilter next, ILogger<Program> logger, CliInvocation cli)
5050
: ConsoleAppFilter(next)
5151
{
5252
[SuppressMessage("Usage", "CA2254:Template should be a static expression")]
5353
public override Task InvokeAsync(ConsoleAppContext context, Cancel cancellationToken)
5454
{
55-
ConsoleApp.Log = msg => logger.LogInformation(msg);
56-
ConsoleApp.LogError = msg => logger.LogError(msg);
55+
if (!cli.IsHelpOrVersion)
56+
{
57+
ConsoleApp.Log = msg => logger.LogInformation(msg);
58+
ConsoleApp.LogError = msg => logger.LogError(msg);
59+
}
5760

5861
return Next.InvokeAsync(context, cancellationToken);
5962
}

src/tooling/docs-builder/Filters/CheckForUpdatesFilter.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@
66
using ConsoleAppFramework;
77
using Elastic.Documentation;
88
using Elastic.Documentation.Configuration;
9+
using Elastic.Documentation.ServiceDefaults;
910

1011
namespace Documentation.Builder.Filters;
1112

12-
internal sealed class CheckForUpdatesFilter(ConsoleAppFilter next) : ConsoleAppFilter(next)
13+
internal sealed class CheckForUpdatesFilter(ConsoleAppFilter next, CliInvocation cliInvocation) : ConsoleAppFilter(next)
1314
{
1415
private readonly FileInfo _stateFile = new(Path.Combine(Paths.ApplicationData.FullName, "docs-build-check.state"));
1516

@@ -18,6 +19,8 @@ public override async Task InvokeAsync(ConsoleAppContext context, Cancel ctx)
1819
await Next.InvokeAsync(context, ctx);
1920
if (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("CI")))
2021
return;
22+
if (cliInvocation.IsHelpOrVersion)
23+
return;
2124

2225
var latestVersionUrl = await GetLatestVersion(ctx);
2326
if (latestVersionUrl is null)

src/tooling/docs-builder/Filters/ReplaceLogFilter.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,22 @@
44

55
using System.Diagnostics.CodeAnalysis;
66
using ConsoleAppFramework;
7+
using Elastic.Documentation.ServiceDefaults;
78
using Microsoft.Extensions.Logging;
89

910
namespace Documentation.Builder.Filters;
1011

11-
internal sealed class ReplaceLogFilter(ConsoleAppFilter next, ILogger<Program> logger)
12+
internal sealed class ReplaceLogFilter(ConsoleAppFilter next, ILogger<Program> logger, CliInvocation cli)
1213
: ConsoleAppFilter(next)
1314
{
1415
[SuppressMessage("Usage", "CA2254:Template should be a static expression")]
1516
public override Task InvokeAsync(ConsoleAppContext context, Cancel cancellationToken)
1617
{
17-
ConsoleApp.Log = msg => logger.LogInformation(msg);
18-
ConsoleApp.LogError = msg => logger.LogError(msg);
18+
if (!cli.IsHelpOrVersion)
19+
{
20+
ConsoleApp.Log = msg => logger.LogInformation(msg);
21+
ConsoleApp.LogError = msg => logger.LogError(msg);
22+
}
1923

2024
return Next.InvokeAsync(context, cancellationToken);
2125
}

0 commit comments

Comments
 (0)