Esempio n. 1
0
        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.
        }