Files
alt-gen/src/AltGen.Console/Config/RemoveConfigCommand.cs
T

31 lines
1008 B
C#
Raw Normal View History

2025-02-24 22:53:55 -06:00
namespace AltGen.Console.Config;
2025-03-08 19:31:56 -06:00
sealed class RemoveConfigCommand(
IAnsiConsole console,
IAppSettingsManager settingsManager
2025-03-08 19:31:56 -06:00
) : AsyncCommand<RemoveConfigCommand.Settings>
2025-02-24 22:53:55 -06:00
{
2025-03-08 19:31:56 -06:00
readonly IAnsiConsole _console = console;
readonly IAppSettingsManager _settingsManager = settingsManager;
2025-03-08 19:31:56 -06:00
public class Settings : CommandSettings
2025-02-24 22:53:55 -06:00
{
[CommandArgument(1, "<provider>")]
[Description("The provider to remove.")]
public string Provider { get; init; } = string.Empty;
}
public override async Task<int> ExecuteAsync(CommandContext context, Settings settings)
{
if (_settingsManager.AppSettingsExist() is false)
2025-03-08 19:31:56 -06:00
{
throw new ConfigException("No existing settings found.");
2025-03-08 19:31:56 -06:00
}
var appSettings = await _settingsManager.GetAppSettingsAsync();
2025-03-08 19:31:56 -06:00
var updatedAppSettings = appSettings.RemoveProvider(settings);
await _settingsManager.SaveAppSettingsAsync(updatedAppSettings);
2025-03-08 19:31:56 -06:00
_console.MarkupLine($"[bold]{settings.Provider}[/] has been removed.");
2025-02-24 22:53:55 -06:00
return 0;
}
}