Beispiel #1
0
        public static async Task Main(string[] args)
        {
            var assembly = Assembly.GetExecutingAssembly();

            Provider = MakeServiceProvider();

            var validationResult = await Provider.ValidateOptionsAsync(assembly);

            if (!validationResult.IsSuccessful)
            {
                Console.WriteLine($"Config Validation failed: {validationResult.Reason}");
                return;
            }

            InitializeServices();

            Application = new CliApplicationBuilder()
                          .AddCommandsFromThisAssembly()
                          .UseTypeActivator(Provider.GetService)
                          .SetVersion("v0.8.0")
                          .SetExecutableName("ChiaPool")
                          .SetTitle("ChiaPool CLI")
                          .Build();

            await Application.RunAsync();
        }
Beispiel #2
0
        public static async ValueTask <(int exitCode, MemoryStreamWriter stdOut, MemoryStreamWriter stdErr)> BuildAndRunTestAsync(this CliApplicationBuilder applicationBuilder,
                                                                                                                                  ITestOutputHelper testOutput,
                                                                                                                                  string commandLine,
                                                                                                                                  IReadOnlyDictionary <string, string> environmentVariables,
                                                                                                                                  bool containsExecutable = false,
                                                                                                                                  bool isInputRedirected  = true,
                                                                                                                                  string?input            = null)
        {
            var(console, stdIn, stdOut, stdErr) = VirtualConsole.CreateBufferedWithInput(isInputRedirected: isInputRedirected);

            CliApplication application = applicationBuilder.UseConsole(console)
                                         .Build();

            if (input is not null)
            {
                stdIn.WriteString(input.TrimEnd('\r') + "\rexit\r");
            }

            int exitCode = await application.RunAsync(commandLine, environmentVariables, containsExecutable);

            testOutput.WriteLine("Exit Code: {0}", exitCode);
            testOutput.Print(stdOut, stdErr);

            return(exitCode, stdOut, stdErr);
        }
Beispiel #3
0
        public static void Main(string[] args)
        {
            /*
             * Context.Drop();
             * TestUtils.DefaultRules();
             *
             * var proxy = ImportToolkit.Import(TargetsLocator.Targets.First());
             * proxy.Start();
             * proxy.ProgressChanged += (sender, eventArgs) => Console.WriteLine(proxy.ProgressCount);
             * Console.ReadKey();
             * return;
             *
             * //var proxy = ImportToolkit.Import(TargetsLocator.Targets.First());
             * //proxy.Start();
             *
             * var a = Context.Default.PartItems.SqlAppend(@"SearchString LIKE '%насос%'").ToArray();
             *
             * Console.ReadKey();
             *
             * return; */

            TestUtils.SimpleStupidLocker();
            //TestUtils.DefaultRules();
            var cli = new CliApplication(String.Join(" ", args));

            //var cli = new CliApplication(@"--export-db c:\Temp\db.gz");
            cli.Main();
        }
Beispiel #4
0
        public static async Task Main(string[] args)
        {
            Provider    = MakeServiceProvider();
            Application = new CliApplicationBuilder()
                          .AddCommandsFromThisAssembly()
                          .UseTypeActivator(Provider.GetService)
                          .Build();

            await Application.RunAsync();
        }
Beispiel #5
0
        private static void Main(string[] args)
        {
            VT100.TryEnable();

            if (args.Length > 0 && args[0] == "-ignoreDbg")
            {
                AphidErrorHandling.IgnoreDebugger = true;
                args = args.Skip(1).ToArray();
            }
            else if (AphidConfig.Current.IgnoreDebugger)
            {
                AphidErrorHandling.IgnoreDebugger = true;
            }

            var runRepl = args.Length == 0;

            if (Cli.HasConsole)
            {
                try
                {
                    var cursorVisible = Console.CursorVisible;
                    AppDomain.CurrentDomain.ProcessExit += (o, e) =>
                                                           Console.CursorVisible = cursorVisible;
                }
                catch
                {
                }
            }

            AppDomain.CurrentDomain.ProcessExit += (o, e) => Console.ResetColor();
            CliApplication.SetTitle("Aphid", showHeader: runRepl);

            if (runRepl)
            {
                RunRepl();
            }
            else if (args[0][0] == '?')
            {
                RunExpression(args);
            }
            else if (args[0][0] == '*')
            {
                RunStatements(args);
            }
            else if (args[0][0] == '!')
            {
                RunQuotedStatements(args);
            }
            else
            {
                RunScript(args);
            }
        }
        public static async ValueTask <(int exitCode, MemoryStreamWriter stdOut, MemoryStreamWriter stdErr)> BuildAndRunTestAsync(this CliApplicationBuilder applicationBuilder,
                                                                                                                                  ITestOutputHelper testOutput,
                                                                                                                                  IReadOnlyList <string> commandLineArguments,
                                                                                                                                  IReadOnlyDictionary <string, string> environmentVariables,
                                                                                                                                  bool isInputRedirected = true)
        {
            var(console, stdOut, stdErr) = VirtualConsole.CreateBuffered(isInputRedirected: isInputRedirected);

            CliApplication application = applicationBuilder.UseConsole(console)
                                         .Build();

            int exitCode = await application.RunAsync(commandLineArguments, environmentVariables);

            testOutput.WriteLine("Exit Code: {0}", exitCode);
            testOutput.Print(stdOut, stdErr);

            return(exitCode, stdOut, stdErr);
        }
Beispiel #7
0
        public async Task Console_color_extensions_should_work_after_colors_reset()
        {
            // Arrange
            var builder = new CliApplicationBuilder().AddCommand <WithColorsAndResetCommand>();

            var(console, stdOut, stdErr) = VirtualAnsiConsole.CreateBuffered(isInputRedirected: false, isOutputRedirected: false, isErrorRedirected: false);

            CliApplication application = builder.UseConsole(console)
                                         .Build();

            int exitCode = await application.RunAsync("colors-with-reset", new Dictionary <string, string>());

            _output.WriteLine("Exit Code: {0}", exitCode);
            _output.Print(stdOut, stdErr);

            // Assert
            exitCode.Should().Be(ExitCodes.Success);
            stdOut.GetString().Should().Contain(WithColorsAndResetCommand.ExpectedOutputText);
            stdErr.GetString().Should().BeNullOrWhiteSpace();
        }
        public async Task RunAsync_Test()
        {
            // Arrange
            var command          = new TestCommand();
            var expectedExitCode = await command.ExecuteAsync();

            var commandOptionParser = new CommandOptionParser();

            var typeProvider           = new TypeProvider(typeof(TestCommand));
            var commandOptionConverter = new CommandOptionConverter();
            var commandResolver        = new CommandResolver(typeProvider, commandOptionConverter);

            var application = new CliApplication(commandOptionParser, commandResolver);

            // Act
            var exitCodeValue = await application.RunAsync();

            // Assert
            Assert.That(exitCodeValue, Is.EqualTo(expectedExitCode.Value), "Exit code");
        }