37 lines
1.1 KiB
C#
37 lines
1.1 KiB
C#
|
using BiblioTech.Options;
|
|||
|
using CodexPlugin;
|
|||
|
|
|||
|
namespace BiblioTech
|
|||
|
{
|
|||
|
public abstract class BaseDeploymentCommand : BaseCommand
|
|||
|
{
|
|||
|
protected override async Task Invoke(CommandContext context)
|
|||
|
{
|
|||
|
var proceed = await OnInvoke(context);
|
|||
|
if (!proceed) return;
|
|||
|
|
|||
|
var deployments = Program.DeploymentFilesMonitor.GetDeployments();
|
|||
|
if (deployments.Length == 0)
|
|||
|
{
|
|||
|
await context.Followup("No deployments are currently available.");
|
|||
|
return;
|
|||
|
}
|
|||
|
if (deployments.Length > 1)
|
|||
|
{
|
|||
|
await context.Followup("Multiple deployments are online. I don't know which one to pick!");
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
var codexDeployment = deployments.Single();
|
|||
|
await ExecuteDeploymentCommand(context, codexDeployment);
|
|||
|
}
|
|||
|
|
|||
|
protected abstract Task ExecuteDeploymentCommand(CommandContext context, CodexDeployment codexDeployment);
|
|||
|
|
|||
|
protected virtual Task<bool> OnInvoke(CommandContext context)
|
|||
|
{
|
|||
|
return Task.FromResult(true);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|