Command Types
The frontend @main
and @cast
restrict a lot features to make the package interface as simple as possible. However, if you want to customize the behaviour, you can also create command objects directly via the interfaces at this level, which are all in Comonicon.Types
.
References
Comonicon.Types.AbstractCommand
— TypeAbstractCommand
abstract type for commands.
Comonicon.Types.EntryCommand
— TypeEntryCommand <: AbstractCommand
EntryCommand
describes the entry of the CLI. It contains an actual root command (either LeafCommand
or NodeCommand
) of the entire CLI and a version number. The version number is v"0.0.0"
by default.
Comonicon.Types.LeafCommand
— TypeLeafCommand <: AbstractCommand
LeafCommand
describes the command at the end of a CLI, e.g in the following show
is LeafCommand
, it is the command that actually executes things. See also NodeCommand
.
git remote show origin
Comonicon.Types.NodeCommand
— TypeNodeCommand <: AbstractCommand
NodeCommand
describes the command in the middle of a CLI, e.g in the following remote
is a NodeCommand
, it will dispatch the call to its sub-command show
. See also LeafCommand
.
git remote show origin
Comonicon.Types.max_brief_length
— Methodmax_brief_length()
Get the maximum length allowed for a brief description.
Comonicon.Types.print_cmd
— Functionprint_cmd([io, ]cmd)
Print a command object. This is used to generate command help.
Comonicon.Types.set_brief_length!
— Functionset_brief_length!(n::Int=120)
Set the maximum length of a brief description. Default is 120.
Comonicon.Types.splittext
— Methodsplittext(s)
Split the text in string s
into an array, but keep all the separators attached to the preceding word.
this is copied from Luxor/text.jl