Пример #1
0
 public BuiltInPrimaryCommand(ICoconaConsoleProvider console, ICoconaCommandHelpProvider commandHelpProvider, ICoconaHelpRenderer helpRenderer, ICoconaCommandProvider commandProvider)
 {
     _console             = console;
     _commandHelpProvider = commandHelpProvider;
     _helpRenderer        = helpRenderer;
     _commandProvider     = commandProvider;
 }
Пример #2
0
 public ValueTask <int> ShowHelp(
     [FromService] ICoconaHelpMessageBuilder helpBuilder,
     [FromService] ICoconaConsoleProvider console
     )
 {
     console.Output.Write(helpBuilder.BuildAndRenderForCurrentContext());
     return(new ValueTask <int>(129));
 }
Пример #3
0
 public BuiltInPrimaryCommand(ICoconaAppContextAccessor appContext, ICoconaConsoleProvider console, ICoconaCommandHelpProvider commandHelpProvider, ICoconaHelpRenderer helpRenderer, ICoconaCommandProvider commandProvider)
 {
     _appContext          = appContext;
     _console             = console;
     _commandHelpProvider = commandHelpProvider;
     _helpRenderer        = helpRenderer;
     _commandProvider     = commandProvider;
 }
Пример #4
0
 public BuiltInCommandMiddleware(CommandDispatchDelegate next, ICoconaHelpRenderer helpRenderer, ICoconaCommandHelpProvider commandHelpProvider, ICoconaCommandProvider commandProvider, ICoconaConsoleProvider console)
     : base(next)
 {
     _helpRenderer        = helpRenderer;
     _commandHelpProvider = commandHelpProvider;
     _commandProvider     = commandProvider;
     _console             = console;
 }
Пример #5
0
 public ValueTask <int> ShowVersion(
     [FromService] ICoconaCommandHelpProvider commandHelpProvider,
     [FromService] ICoconaConsoleProvider console,
     [FromService] ICoconaHelpRenderer helpRenderer
     )
 {
     console.Output.Write(helpRenderer.Render(commandHelpProvider.CreateVersionHelp()));
     return(new ValueTask <int>(0));
 }
Пример #6
0
 public BuiltInCommandMiddleware(CommandDispatchDelegate next, ICoconaHelpRenderer helpRenderer, ICoconaCommandHelpProvider commandHelpProvider, ICoconaCommandProvider commandProvider, ICoconaConsoleProvider console, ICoconaAppContextAccessor appContext)
     : base(next)
 {
     _helpRenderer        = helpRenderer;
     _commandHelpProvider = commandHelpProvider;
     _commandProvider     = commandProvider;
     _console             = console;
     _appContext          = appContext;
 }
Пример #7
0
        public CoconaHostedService(
            ICoconaConsoleProvider console,
            ICoconaCommandDispatcher commandDispatcher,
            ICoconaCommandDispatcherPipelineBuilder dispatcherPipelineBuilder,
            IHostApplicationLifetime lifetime
            )
        {
            _console                   = console;
            _commandDispatcher         = commandDispatcher;
            _dispatcherPipelineBuilder = dispatcherPipelineBuilder;
            _lifetime                  = lifetime;

            _cancellationTokenSource = new CancellationTokenSource();
        }
Пример #8
0
        public ValueTask <int> GenerateCompletionSource(
            [FromService] ICoconaConsoleProvider console,
            [FromService] ICoconaCommandProvider commandProvider,
            [FromService] ICoconaShellCompletionCodeProvider shellCompletionCodeProvider,
            [Argument] string shellName
            )
        {
            if (!shellCompletionCodeProvider.CanHandle(shellName))
            {
                console.Error.Write($"Error: Shell completion for '{shellName}' is not supported. (Supported shells: {string.Join(", ", shellCompletionCodeProvider.SupportedTargets)})");
                return(new ValueTask <int>(1));
            }

            shellCompletionCodeProvider.Generate(shellName, console.Output, commandProvider.GetCommandCollection());
            return(new ValueTask <int>(0));
        }
Пример #9
0
        // --completion-candidates <shell>:<paramName> -- <incompleted command line...>
        // WARN: The option must be processed before '--help' or '--version' options.
        //       If '--completion-candidates' option is provided, '--help' and '--version' options are also always provided.
        //       And these options prevent to perform unintended **destructive** action if the command doesn't support on-the-fly candidates feature.
        //       Fortunately, Cocona rejects unknown options by default. This options guard is fail-safe.
        public ValueTask <int> GetCompletionCandidates(
            [FromService] ICoconaConsoleProvider console,
            [FromService] ICoconaShellCompletionCodeProvider shellCompletionCodeGenerator,
            [FromService] ICoconaCompletionCandidates completionCandidates,
            [Argument] string target,
            [Argument] string[] arguments
            )
        {
            var parts = target.Split(new[] { ':' }, 2);

            var(shellTarget, paramName) = (parts[0], parts[1]);

            var candidates = completionCandidates.GetOnTheFlyCandidates(paramName, arguments, 0, null);

            shellCompletionCodeGenerator.GenerateOnTheFlyCandidates(shellTarget, console.Output, candidates);
            return(new ValueTask <int>(0));
        }
 public RejectUnknownOptionsMiddleware(CommandDispatchDelegate next, ICoconaConsoleProvider console) : base(next)
 {
     _console = console;
 }
Пример #11
0
 public HandleParameterBindExceptionMiddleware(CommandDispatchDelegate next, ICoconaConsoleProvider console) : base(next)
 {
     _console = console;
 }
Пример #12
0
 public BuiltInPrimaryCommand(ICoconaConsoleProvider console, ICoconaHelpMessageBuilder helpBuilder)
 {
     _console     = console;
     _helpBuilder = helpBuilder;
 }