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(); }
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); }
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(); }
public static async Task Main(string[] args) { Provider = MakeServiceProvider(); Application = new CliApplicationBuilder() .AddCommandsFromThisAssembly() .UseTypeActivator(Provider.GetService) .Build(); await Application.RunAsync(); }
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); }
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"); }