The command-line commands are fully configurable which allows you to extend or replace the behavior of your generator with whatever you want.
Statiq uses the excellent Spectre.Console library to manage command-line parsing. This allows commands to be defined as strongly-typed classes with typed sets of command-line arguments and options. It also automatically generates help text when the user uses the --help
argument.
To define a new command, implement the Spectre.Cli.AsyncCommand<TSettings>
interface (where TSettings
is the type that contains command-line arguments and options). You can also derive your command class from BaseCommand<TSettings>
which adds default logging and debugging command-line arguments to your command.
By default the bootstrapper will add all command types from the entry assembly. You can also use the bootstrapper to add specific commands using the various AddCommand
and AddCommands
fluent methods.
In addition, new commands can be added directly from the bootstrapper:
AddPipelineCommand
methods allow you to add a command that executes specific pipelines.AddDelegateCommand
methods allow you to add a command using a delegate.