Skip to content

ZenExtensions/spectre-console

Repository files navigation

Zen Spectre Console Extensions

Actions Status Current Version

Overview

Installing

You can add the package to your project using dotnet core CLI

dotnet add package ZenExtensions.Spectre.Console

or by package manager console in Visual Studio

Install-Package ZenExtensions.Spectre.Console

Usage

Use the following steps to configure Zen Spectre Console Extensions. Please refer to Changelog for changes between versions.

1. Create Startup Class

using ZenExtensions.Spectre.Console;

public class Startup : BaseStartup
{
    public abstract void ConfigureServices(IServiceCollection services, IConfiguration configuration, IHostEnvironment hostingEnvironment)
    {

    }

    public override void ConfigureCommands(in IConfigurator configurator)
    {

    }
}

2. Configure Program file

using ZenExtensions.Spectre.Console;
using System.Threading.Tasks;

class Program
{
    public static Task<int> Main(string[] args) => 
        CliHost.RunAsync<Startup>(args);
}

You can also have a default command using generic SpectreConsoleHost.

using ZenExtensions.Spectre.Console;
using System.Threading.Tasks;

class Program
{
    public static Task<int> RunWithMainCommandAsync(string[] args) => 
        CliHost.RunAsync<Startup>(args);
        
}

3. Add a command

using Spectre.Console;
using Spectre.Console.Cli;
using ZenExtensions.Spectre.Console;
public class MainCommand : ZenCommand
{
    public override void OnExecute(CommandContext context, CancellationToken cancellationToken)
    {
        Terminal.WriteLine("Hello World");
    }
}

4. Register command with application

using ZenExtensions.Spectre.Console;

public class Startup : BaseStartup
{
    public abstract void ConfigureServices(IServiceCollection services, IConfiguration configuration, IHostEnvironment hostingEnvironment)
    {

    }

    public override void ConfigureCommands(in IConfigurator configurator)
    {
        configurator.AddCommand<MainCommand>("main")
            .WithDescription("Displays hello world");
    }
}

5. Run the command

Run the command by using dotnet cli

> dotnet run main
Hello World

About

DI extensions for Spectre Console

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages