using System; using System.Threading.Tasks; using CliFx; using DiscordChatExporter.Cli.Commands; using DiscordChatExporter.Core.Services; using Microsoft.Extensions.DependencyInjection; namespace DiscordChatExporter.Cli { public static class Program { private static IServiceProvider ConfigureServices() { var services = new ServiceCollection(); // Register services services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); // Register commands services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); return services.BuildServiceProvider(); } public static Task Main(string[] args) { var serviceProvider = ConfigureServices(); return new CliApplicationBuilder() .AddCommandsFromThisAssembly() .UseCommandFactory(schema => (ICommand) serviceProvider.GetService(schema.Type)) .Build() .RunAsync(args); } } }