42 lines
1.2 KiB
C#
42 lines
1.2 KiB
C#
|
using Cocona;
|
|||
|
using Cocona.Application;
|
|||
|
using Cocona.Command;
|
|||
|
using Cocona.Command.Features;
|
|||
|
using Cocona.Help;
|
|||
|
using Terminal.Commands;
|
|||
|
|
|||
|
var builder = CoconaApp.CreateBuilder(args, options =>
|
|||
|
{
|
|||
|
options.TreatPublicMethodsAsCommands = false;
|
|||
|
options.EnableShellCompletionSupport = true;
|
|||
|
});
|
|||
|
|
|||
|
var app = builder.Build();
|
|||
|
app.AddCommands<GenerateCommands>();
|
|||
|
app.AddCommands<VersionCommands>();
|
|||
|
app.AddCommand(PrimaryCommand);
|
|||
|
|
|||
|
await app.RunAsync();
|
|||
|
return;
|
|||
|
|
|||
|
//
|
|||
|
// We define the primary command here, to show our own version information when
|
|||
|
// the `--version` option is used, and to show the help index when no option is
|
|||
|
// specified.
|
|||
|
//
|
|||
|
void PrimaryCommand(
|
|||
|
bool version,
|
|||
|
[FromService] ICoconaAppContextAccessor appContext,
|
|||
|
[FromService] ICoconaCommandProvider commandProvider,
|
|||
|
[FromService] ICoconaHelpRenderer helpRenderer,
|
|||
|
[FromService] ICoconaCommandHelpProvider commandHelpProvider)
|
|||
|
{
|
|||
|
if (version)
|
|||
|
{
|
|||
|
VersionCommands.ShowVersion();
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
var commandStack = appContext.Current!.Features.Get<ICoconaCommandFeature>().CommandStack;
|
|||
|
Console.Write(helpRenderer.Render(commandHelpProvider.CreateCommandsIndexHelp(commandProvider.GetCommandCollection(), commandStack)));
|
|||
|
}
|