using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using Spectre.Console.Cli; using Snapp.Cli.Commands; using Snapp.Cli.Helpers; using Snapp.Cli.Services; var registrations = new ServiceCollection(); registrations.AddSingleton(); registrations.AddHttpClient(); registrations.AddScoped(sp => sp.GetRequiredService>().Value); registrations.AddSingleton(); registrations.AddOptions(); var registrar = new TypeRegistrar(registrations); var app = new CommandApp(registrar); app.Configure(config => { config.CaseSensitivity(CaseSensitivity.None); config.SetApplicationName("Snapp CLI"); config.ValidateExamples(); #if DEBUG config.PropagateExceptions(); config.ValidateExamples(); #endif config.AddCommand("debug"); config.AddCommand("list"); config.AddCommand("add"); }); return await app .RunAsync(args) .ConfigureAwait(false);