From f1f203162e8a285af310414a7a9a961ef82d771c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Mon, 13 Mar 2023 20:08:54 +0100 Subject: [PATCH] Fix logging messages sometimes being misinterpreted as having markup. --- src/cli/Log.cs | 7 ++++++- src/tools/dc/Commands/PackCommand.cs | 2 +- src/tools/dc/Commands/RepackCommand.cs | 2 +- src/tools/dc/Commands/SchemaCommand.cs | 5 ++--- src/tools/dc/Commands/UnpackCommand.cs | 4 ++-- src/tools/dc/Commands/ValidateCommand.cs | 2 +- src/tools/dc/Commands/VerifyCommand.cs | 14 +++++++------- src/tools/dc/DataSheetValidationHandler.cs | 4 ++-- src/tools/rc/Commands/PackCommand.cs | 2 +- src/tools/rc/Commands/RepackCommand.cs | 2 +- src/tools/rc/Commands/UnpackCommand.cs | 2 +- src/tools/rc/Commands/VerifyCommand.cs | 12 ++++++------ src/tools/run/Commands/ClientCommand.cs | 2 +- src/tools/run/Commands/LauncherCommand.cs | 2 +- src/tools/scan/Commands/ScanCommand.cs | 9 +++++---- 15 files changed, 38 insertions(+), 33 deletions(-) diff --git a/src/cli/Log.cs b/src/cli/Log.cs index 608cbf5..5437cc1 100644 --- a/src/cli/Log.cs +++ b/src/cli/Log.cs @@ -8,11 +8,16 @@ public static void WriteLine() } public static void WriteLine(string value) + { + AnsiConsole.WriteLine(value); + } + + public static void MarkupLine(string value) { AnsiConsole.MarkupLine(CultureInfo.CurrentCulture, value); } - public static void WriteLine(FormattableString value) + public static void MarkupLineInterpolated(FormattableString value) { AnsiConsole.MarkupLineInterpolated(CultureInfo.CurrentCulture, value); } diff --git a/src/tools/dc/Commands/PackCommand.cs b/src/tools/dc/Commands/PackCommand.cs index ba9d914..8938e64 100644 --- a/src/tools/dc/Commands/PackCommand.cs +++ b/src/tools/dc/Commands/PackCommand.cs @@ -49,7 +49,7 @@ protected override Task PreExecuteAsync( protected override async Task ExecuteAsync( dynamic expando, PackCommandSettings settings, ProgressContext progress, CancellationToken cancellationToken) { - Log.WriteLine($"Packing [cyan]{settings.Input}[/] to [cyan]{settings.Output}[/]..."); + Log.MarkupLineInterpolated($"Packing [cyan]{settings.Input}[/] to [cyan]{settings.Output}[/]..."); var files = await progress.RunTaskAsync( "Gather data sheet files", diff --git a/src/tools/dc/Commands/RepackCommand.cs b/src/tools/dc/Commands/RepackCommand.cs index ef2dd66..beef8e0 100644 --- a/src/tools/dc/Commands/RepackCommand.cs +++ b/src/tools/dc/Commands/RepackCommand.cs @@ -55,7 +55,7 @@ public RepackCommandSettings(string input, string output) protected override async Task ExecuteAsync( dynamic expando, RepackCommandSettings settings, ProgressContext progress, CancellationToken cancellationToken) { - Log.WriteLine($"Repacking [cyan]{settings.Input}[/] to [cyan]{settings.Output}[/]..."); + Log.MarkupLineInterpolated($"Repacking [cyan]{settings.Input}[/] to [cyan]{settings.Output}[/]..."); var root = await progress.RunTaskAsync( "Load data center", diff --git a/src/tools/dc/Commands/SchemaCommand.cs b/src/tools/dc/Commands/SchemaCommand.cs index 2c7d97f..56aec4c 100644 --- a/src/tools/dc/Commands/SchemaCommand.cs +++ b/src/tools/dc/Commands/SchemaCommand.cs @@ -64,9 +64,8 @@ This means that schemas generated from this command may reject modifications to the resulting schemas, and construct a more accurate set of schemas using good human judgement.[/]".ReplaceLineEndings()); Log.WriteLine(); - Log.WriteLine( - $"Inferring data sheet schemas of [cyan]{settings.Input}[/] to [cyan]{settings.Output}[/] " + - $"with strategy [cyan]{settings.Strategy}[/]..."); + Log.MarkupLineInterpolated( + $"Inferring data sheet schemas of [cyan]{settings.Input}[/] to [cyan]{settings.Output}[/] with strategy [cyan]{settings.Strategy}[/]..."); var root = await progress.RunTaskAsync( "Load data center", diff --git a/src/tools/dc/Commands/UnpackCommand.cs b/src/tools/dc/Commands/UnpackCommand.cs index 588ad04..7de65c2 100644 --- a/src/tools/dc/Commands/UnpackCommand.cs +++ b/src/tools/dc/Commands/UnpackCommand.cs @@ -45,7 +45,7 @@ protected override Task PreExecuteAsync( protected override async Task ExecuteAsync( dynamic expando, UnpackCommandSettings settings, ProgressContext progress, CancellationToken cancellationToken) { - Log.WriteLine($"Unpacking [cyan]{settings.Input}[/] to [cyan]{settings.Output}[/]..."); + Log.MarkupLineInterpolated($"Unpacking [cyan]{settings.Input}[/] to [cyan]{settings.Output}[/]..."); var root = await progress.RunTaskAsync( "Load data center", @@ -181,7 +181,7 @@ protected override Task PostExecuteAsync( dynamic expando, UnpackCommandSettings settings, CancellationToken cancellationToken) { foreach (var name in (List)expando.Missing) - Log.WriteLine($"[yellow]Data sheet [cyan]{name}[/] does not have a known schema.[/]"); + Log.MarkupLineInterpolated($"[yellow]Data sheet [cyan]{name}[/] does not have a known schema.[/]"); return Task.CompletedTask; } diff --git a/src/tools/dc/Commands/ValidateCommand.cs b/src/tools/dc/Commands/ValidateCommand.cs index cac57e1..e019ec1 100644 --- a/src/tools/dc/Commands/ValidateCommand.cs +++ b/src/tools/dc/Commands/ValidateCommand.cs @@ -29,7 +29,7 @@ protected override async Task ExecuteAsync( ProgressContext progress, CancellationToken cancellationToken) { - Log.WriteLine($"Validating data sheets in [cyan]{settings.Input}[/]..."); + Log.MarkupLineInterpolated($"Validating data sheets in [cyan]{settings.Input}[/]..."); var files = await progress.RunTaskAsync( "Gather data sheet files", diff --git a/src/tools/dc/Commands/VerifyCommand.cs b/src/tools/dc/Commands/VerifyCommand.cs index 6026c44..06e3232 100644 --- a/src/tools/dc/Commands/VerifyCommand.cs +++ b/src/tools/dc/Commands/VerifyCommand.cs @@ -33,7 +33,7 @@ public VerifyCommandSettings(string input) protected override async Task ExecuteAsync( dynamic expando, VerifyCommandSettings settings, ProgressContext progress, CancellationToken cancellationToken) { - Log.WriteLine($"Verifying [cyan]{settings.Input}[/]..."); + Log.MarkupLineInterpolated($"Verifying [cyan]{settings.Input}[/]..."); await progress.RunTaskAsync( "Compute data center hashes", @@ -106,13 +106,13 @@ void ForceLoad(DataCenterNode node) protected override Task PostExecuteAsync( dynamic expando, VerifyCommandSettings settings, CancellationToken cancellationToken) { - Log.WriteLine($"SHA-1: [blue]{expando.SHA1}[/]"); - Log.WriteLine($"SHA-256: [blue]{expando.SHA256}[/]"); - Log.WriteLine($"SHA-384: [blue]{expando.SHA384}[/]"); - Log.WriteLine($"SHA-512: [blue]{expando.SHA512}[/]"); + Log.MarkupLineInterpolated($"SHA-1: [blue]{expando.SHA1}[/]"); + Log.MarkupLineInterpolated($"SHA-256: [blue]{expando.SHA256}[/]"); + Log.MarkupLineInterpolated($"SHA-384: [blue]{expando.SHA384}[/]"); + Log.MarkupLineInterpolated($"SHA-512: [blue]{expando.SHA512}[/]"); Log.WriteLine(); - Log.WriteLine($"Nodes: [blue]{expando.Nodes}[/]"); - Log.WriteLine($"Attributes: [blue]{expando.Attributes}[/]"); + Log.MarkupLineInterpolated($"Nodes: [blue]{expando.Nodes}[/]"); + Log.MarkupLineInterpolated($"Attributes: [blue]{expando.Attributes}[/]"); return Task.CompletedTask; } diff --git a/src/tools/dc/DataSheetValidationHandler.cs b/src/tools/dc/DataSheetValidationHandler.cs index b955e05..ddff281 100644 --- a/src/tools/dc/DataSheetValidationHandler.cs +++ b/src/tools/dc/DataSheetValidationHandler.cs @@ -28,13 +28,13 @@ public void Print() _ => throw new UnreachableException(), }; - Log.WriteLine($" [[[{color}]{type}[/]]] ([blue]{line}[/],[blue]{col}[/]): {msg}"); + Log.MarkupLineInterpolated($" [[[{color}]{type}[/]]] ([blue]{line}[/],[blue]{col}[/]): {msg}"); } var remainingProblems = fileGroup.Count() - shownProblems.Length; if (remainingProblems != 0) - Log.WriteLine($" ... [darkorange]{remainingProblems}[/] more problem(s) ..."); + Log.MarkupLineInterpolated($" ... [darkorange]{remainingProblems}[/] more problem(s) ..."); } Log.WriteLine(); diff --git a/src/tools/rc/Commands/PackCommand.cs b/src/tools/rc/Commands/PackCommand.cs index 1d7c60f..b7aa5de 100644 --- a/src/tools/rc/Commands/PackCommand.cs +++ b/src/tools/rc/Commands/PackCommand.cs @@ -28,7 +28,7 @@ public PackCommandSettings(string input, string output) protected override async Task ExecuteAsync( dynamic expando, PackCommandSettings settings, ProgressContext progress, CancellationToken cancellationToken) { - Log.WriteLine($"Packing [cyan]{settings.Input}[/] to [cyan]{settings.Output}[/]..."); + Log.MarkupLineInterpolated($"Packing [cyan]{settings.Input}[/] to [cyan]{settings.Output}[/]..."); var files = await progress.RunTaskAsync( "Gather resource files", diff --git a/src/tools/rc/Commands/RepackCommand.cs b/src/tools/rc/Commands/RepackCommand.cs index c93ee31..62ca820 100644 --- a/src/tools/rc/Commands/RepackCommand.cs +++ b/src/tools/rc/Commands/RepackCommand.cs @@ -37,7 +37,7 @@ public RepackCommandSettings(string input, string output) protected override async Task ExecuteAsync( dynamic expando, RepackCommandSettings settings, ProgressContext progress, CancellationToken cancellationToken) { - Log.WriteLine($"Repacking [cyan]{settings.Input}[/] to [cyan]{settings.Output}[/]..."); + Log.MarkupLineInterpolated($"Repacking [cyan]{settings.Input}[/] to [cyan]{settings.Output}[/]..."); var rc = await progress.RunTaskAsync( "Load resource container", diff --git a/src/tools/rc/Commands/UnpackCommand.cs b/src/tools/rc/Commands/UnpackCommand.cs index 251c607..70f006f 100644 --- a/src/tools/rc/Commands/UnpackCommand.cs +++ b/src/tools/rc/Commands/UnpackCommand.cs @@ -32,7 +32,7 @@ public UnpackCommandSettings(string input, string output) protected override async Task ExecuteAsync( dynamic expando, UnpackCommandSettings settings, ProgressContext progress, CancellationToken cancellationToken) { - Log.WriteLine($"Unpacking [cyan]{settings.Input}[/] to [cyan]{settings.Output}[/]..."); + Log.MarkupLineInterpolated($"Unpacking [cyan]{settings.Input}[/] to [cyan]{settings.Output}[/]..."); var rc = await progress.RunTaskAsync( "Load resource container", diff --git a/src/tools/rc/Commands/VerifyCommand.cs b/src/tools/rc/Commands/VerifyCommand.cs index ce99493..1e5042d 100644 --- a/src/tools/rc/Commands/VerifyCommand.cs +++ b/src/tools/rc/Commands/VerifyCommand.cs @@ -28,7 +28,7 @@ public VerifyCommandSettings(string input) protected override async Task ExecuteAsync( dynamic expando, VerifyCommandSettings settings, ProgressContext progress, CancellationToken cancellationToken) { - Log.WriteLine($"Verifying [cyan]{settings.Input}[/]..."); + Log.MarkupLineInterpolated($"Verifying [cyan]{settings.Input}[/]..."); await progress.RunTaskAsync( "Compute resource container hashes", @@ -75,12 +75,12 @@ await progress.RunTaskAsync( protected override Task PostExecuteAsync( dynamic expando, VerifyCommandSettings settings, CancellationToken cancellationToken) { - Log.WriteLine($"SHA-1: [blue]{expando.SHA1}[/]"); - Log.WriteLine($"SHA-256: [blue]{expando.SHA256}[/]"); - Log.WriteLine($"SHA-384: [blue]{expando.SHA384}[/]"); - Log.WriteLine($"SHA-512: [blue]{expando.SHA512}[/]"); + Log.MarkupLineInterpolated($"SHA-1: [blue]{expando.SHA1}[/]"); + Log.MarkupLineInterpolated($"SHA-256: [blue]{expando.SHA256}[/]"); + Log.MarkupLineInterpolated($"SHA-384: [blue]{expando.SHA384}[/]"); + Log.MarkupLineInterpolated($"SHA-512: [blue]{expando.SHA512}[/]"); Log.WriteLine(); - Log.WriteLine($"Entries: [blue]{expando.Entries}[/]"); + Log.MarkupLineInterpolated($"Entries: [blue]{expando.Entries}[/]"); return Task.CompletedTask; } diff --git a/src/tools/run/Commands/ClientCommand.cs b/src/tools/run/Commands/ClientCommand.cs index d7e5854..593a2a8 100644 --- a/src/tools/run/Commands/ClientCommand.cs +++ b/src/tools/run/Commands/ClientCommand.cs @@ -67,7 +67,7 @@ protected override Task ExecuteAsync( null, settings.ServerPort); - Log.WriteLine($"Running client and connecting to [cyan]{srvName}[/]..."); + Log.MarkupLineInterpolated($"Running client and connecting to [cyan]{srvName}[/]..."); return progress.RunTaskAsync( "Connecting to arbiter server", diff --git a/src/tools/run/Commands/LauncherCommand.cs b/src/tools/run/Commands/LauncherCommand.cs index fd6ab29..cbd4581 100644 --- a/src/tools/run/Commands/LauncherCommand.cs +++ b/src/tools/run/Commands/LauncherCommand.cs @@ -40,7 +40,7 @@ protected override Task ExecuteAsync( ProgressContext progress, CancellationToken cancellationToken) { - Log.WriteLine($"Running launcher and connecting to [cyan]{settings.ServerListUri}[/]..."); + Log.MarkupLineInterpolated($"Running launcher and connecting to [cyan]{settings.ServerListUri}[/]..."); return progress.RunTaskAsync( "Connecting to arbiter server", diff --git a/src/tools/scan/Commands/ScanCommand.cs b/src/tools/scan/Commands/ScanCommand.cs index ac66e2b..361b836 100644 --- a/src/tools/scan/Commands/ScanCommand.cs +++ b/src/tools/scan/Commands/ScanCommand.cs @@ -46,19 +46,20 @@ protected override async Task ExecuteAsync( if (proc == null) { - Log.WriteLine($"Could not find the TERA process."); + Log.WriteLine("Could not find the TERA process."); return 1; } if (proc.MainModule?.ModuleName != "TERA.exe") { - Log.WriteLine($"Process [cyan]{proc.Id}[/] does not look like TERA."); + Log.MarkupLineInterpolated($"Process [cyan]{proc.Id}[/] does not look like TERA."); return 1; } - Log.WriteLine($"Scanning TERA process [cyan]{proc.Id}[/] and writing results to [cyan]{settings.Output}[/]..."); + Log.MarkupLineInterpolated( + $"Scanning TERA process [cyan]{proc.Id}[/] and writing results to [cyan]{settings.Output}[/]..."); NativeAddress teraExeBase; byte[] teraExeImage; @@ -107,7 +108,7 @@ protected override Task PostExecuteAsync( dynamic expando, ScanCommandSettings settings, CancellationToken cancellationToken) { foreach (var name in (List)expando.Failures) - Log.WriteLine($"[blue]{name}[/] failed to retrieve information from the TERA process."); + Log.MarkupLineInterpolated($"[blue]{name}[/] failed to retrieve information from the TERA process."); return Task.CompletedTask; }