1
0
Files
Toak/Commands/ConfigUpdaterCommand.cs

41 lines
1.5 KiB
C#

using Spectre.Console;
using Toak.Configuration;
namespace Toak.Commands;
public static class ConfigUpdaterCommand
{
public static Task ExecuteAsync(string key, string val, bool verbose)
{
Core.Logger.Verbose = verbose;
var configManager = new ConfigManager();
var config = configManager.LoadConfig();
key = key.ToLowerInvariant();
val = val.ToLowerInvariant();
switch (key)
{
case "llm": config.LlmModel = val; break;
case "whisper": config.WhisperModel = val; break;
case "language":
case "lang": config.WhisperLanguage = val; break;
case "backend": config.TypingBackend = val; break;
case "punctuation":
if (bool.TryParse(val, out var p)) { config.ModulePunctuation = p; }
else { AnsiConsole.MarkupLine("[red]Invalid value. Use true or false.[/]"); return Task.CompletedTask; }
break;
case "tech":
if (bool.TryParse(val, out var t)) { config.ModuleTechnicalSanitization = t; }
else { AnsiConsole.MarkupLine("[red]Invalid value. Use true or false.[/]"); return Task.CompletedTask; }
break;
default:
AnsiConsole.MarkupLine($"[red]Unknown config key: {key}[/]");
return Task.CompletedTask;
}
configManager.SaveConfig(config);
AnsiConsole.MarkupLine($"[green]Successfully[/] set {key} to [blue]{val}[/].");
return Task.CompletedTask;
}
}