You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
recyclarr/src/Recyclarr.Cli/Console/Commands/ListCustomFormatsCommand.cs

45 lines
1.7 KiB

using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using JetBrains.Annotations;
using Recyclarr.Cli.Console.Helpers;
using Recyclarr.Cli.Console.Settings;
using Recyclarr.Cli.Pipelines.CustomFormat;
using Recyclarr.Repo;
using Recyclarr.TrashGuide;
using Spectre.Console.Cli;
#pragma warning disable CS8765
namespace Recyclarr.Cli.Console.Commands;
[UsedImplicitly]
[Description("List custom formats in the guide for a particular service.")]
public class ListCustomFormatsCommand(CustomFormatDataLister lister, IMultiRepoUpdater repoUpdater)
: AsyncCommand<ListCustomFormatsCommand.CliSettings>
{
[UsedImplicitly]
[SuppressMessage("Design", "CA1034:Nested types should not be visible")]
public class CliSettings : BaseCommandSettings, IListCustomFormatSettings
{
[CommandArgument(0, "<service_type>")]
[EnumDescription<SupportedServices>("The service type to obtain information about.")]
[UsedImplicitly(ImplicitUseKindFlags.Assign)]
public SupportedServices Service { get; init; }
[CommandOption("--score-sets")]
[Description("Instead of listing custom formats, list the score sets all custom formats are part of.")]
public bool ScoreSets { get; init; } = false;
[CommandOption("--raw")]
[Description("Omit any boilerplate text or colored formatting. This option primarily exists for scripts.")]
public bool Raw { get; init; } = false;
}
public override async Task<int> ExecuteAsync(CommandContext context, CliSettings settings)
{
await repoUpdater.UpdateAllRepositories(settings.CancellationToken, settings.Raw);
lister.List(settings);
return 0;
}
}