first commit

This commit is contained in:
2026-03-02 20:53:28 +01:00
commit d27c205106
63 changed files with 4593 additions and 0 deletions

45
Logging/AppLogger.cs Normal file
View File

@@ -0,0 +1,45 @@
using Spectre.Console;
namespace HanaToolbox.Logging;
/// <summary>
/// Centralized logger. Errors are always shown; Info/Warn require --verbose.
/// </summary>
public sealed class AppLogger(bool verbose)
{
public bool IsVerbose => verbose;
public void Error(string message) =>
AnsiConsole.MarkupLine($"[red]❌ {Escape(message)}[/]");
public void Warning(string message)
{
if (verbose)
AnsiConsole.MarkupLine($"[yellow]⚠️ {Escape(message)}[/]");
}
public void Info(string message)
{
if (verbose)
AnsiConsole.MarkupLine($"[grey]{Escape(message)}[/]");
}
public void Success(string message)
{
if (verbose)
AnsiConsole.MarkupLine($"[green]✅ {Escape(message)}[/]");
}
public void Step(string message)
{
if (verbose)
AnsiConsole.MarkupLine($"[blue]⚙️ {Escape(message)}[/]");
}
public void Always(string message) =>
AnsiConsole.MarkupLine(Escape(message));
private static string Escape(string s) => s
.Replace("[", "[[")
.Replace("]", "]]");
}