public static async Task Main(string[] args) { var parser = new FluentCommandLineParser <ApplicationArguments>(); parser .Setup(arg => arg.BuildDocumentation) .As('d', "docu") .SetDefault(false) .WithDescription("Build the documentation files in the app folder"); parser .SetupHelp("?", "help") .Callback(text => Console.WriteLine(text)); ICommandLineParserResult parseResult = parser.Parse(args); ApplicationArguments parsedArgs = !parseResult.HasErrors ? parser.Object : null; AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; AppDomain.CurrentDomain.ProcessExit += CurrentDomain_ProcessExit; var services = await Initializer.InitializeServicesAndStartClientAsync(); _discordClient = services.GetRequiredService <DiscordClient>(); if (parsedArgs.BuildDocumentation) { var cNext = _discordClient.GetCommandsNext(); var docsHTML = Documentation.DocumentationBuilder.BuildDocumentation(cNext, Documentation.DocumentationOutputType.HTML); await File.WriteAllTextAsync(@"C:\temp\commands.html", docsHTML); var docsMD = Documentation.DocumentationBuilder.BuildDocumentation(cNext, Documentation.DocumentationOutputType.MarkDown); await File.WriteAllTextAsync(@"C:\temp\commands.md", docsMD); await Console.Out.WriteLineAsync("Documentation built"); } await Task.Delay(-1); // Prevent the console window from closing. }