[CLI] Print error and exit if reuse-media option is used without media option (#433)

pull/448/head
Andrew Kolos 4 years ago committed by GitHub
parent 37fcee2f21
commit 53cebd82eb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -3,6 +3,7 @@ using System.IO;
using System.Threading.Tasks;
using CliFx;
using CliFx.Attributes;
using CliFx.Exceptions;
using CliFx.Utilities;
using DiscordChatExporter.Domain.Discord.Models;
using DiscordChatExporter.Domain.Exporting;
@ -11,6 +12,7 @@ namespace DiscordChatExporter.Cli.Commands.Base
{
public abstract class ExportCommandBase : TokenCommandBase
{
[CommandOption("output", 'o',
Description = "Output file or directory path.")]
public string OutputPath { get; set; } = Directory.GetCurrentDirectory();
@ -69,6 +71,13 @@ namespace DiscordChatExporter.Cli.Commands.Base
console.Output.WriteLine("Done.");
}
public void ExecuteAsync()
{
if (ShouldReuseMedia && !ShouldDownloadMedia)
{
throw new CommandException("The --reuse-media option cannot be used without the --media option.");
}
}
protected async ValueTask ExportAsync(IConsole console, Channel channel)
{
var guild = await GetDiscordClient().GetGuildAsync(channel.GuildId);

@ -12,7 +12,10 @@ namespace DiscordChatExporter.Cli.Commands
Description = "Channel ID.")]
public string ChannelId { get; set; } = "";
public override async ValueTask ExecuteAsync(IConsole console) =>
public override async ValueTask ExecuteAsync(IConsole console)
{
base.ExecuteAsync();
await ExportAsync(console, ChannelId);
}
}
}
Loading…
Cancel
Save