BaseCliktCommand

abstract class BaseCliktCommand<T : BaseCliktCommand<T>>(name: String? = null) : ParameterHolder

A base class for commands that want to define a custom type for their run function.

Inheritors

Constructors

Link copied to clipboard
constructor(name: String? = null)

Properties

Link copied to clipboard

If true, allow multiple of this command's subcommands to be called sequentially. This will disable allowInterspersedArgs on the context of this command and its descendants.

Link copied to clipboard

The envvar to use to enable shell autocomplete script generation. Set to null to disable generation.

Link copied to clipboard

The name of this command, used in help output.

Link copied to clipboard

This command's context.

Link copied to clipboard

Extra information about this command to pass to the help formatter.

Link copied to clipboard
open val hiddenFromHelp: Boolean = false

If true, don't display this command in help output when used as a subcommand.

Link copied to clipboard

Used when this command has subcommands, and this command is called without a subcommand. If true, run will be called. By default, a PrintHelpMessage is thrown instead.

Link copied to clipboard

All messages issued during parsing.

Link copied to clipboard
open val printHelpOnEmptyArgs: Boolean = false

If this command is called with no values on the command line, print a help message (by throwing PrintHelpMessage) if this is true, otherwise run normally.

Link copied to clipboard

If true, any options on the command line whose names aren't valid will be parsed as an argument rather than reporting an error. You'll need to define an argument().multiple() to collect these options, or an error will still be reported. Unknown short option flags grouped with other flags on the command line will always be reported as errors.

Functions

Link copied to clipboard
open fun aliases(): Map<String, List<String>>

A list of command aliases.

Link copied to clipboard

Return the parameters that should be sent to the help formatter when this command's getFormattedHelp is called.

Link copied to clipboard
fun BaseCliktCommand<*>.argument(name: String = "", help: String = "", helpTags: Map<String, String> = emptyMap(), completionCandidates: CompletionCandidates? = null): RawArgument

Create a property delegate argument.

Link copied to clipboard
open fun commandHelp(context: Context): String
Link copied to clipboard
open fun commandHelpEpilog(context: Context): String
Link copied to clipboard

Configure this command's Context.

Link copied to clipboard
fun echo()

Print a line break to stdout

fun echo(message: Any?, trailingNewline: Boolean = true, err: Boolean = false)

Print the message to the screen.

Link copied to clipboard
fun echoFormattedHelp(error: CliktError? = null)

Echo the string returned by getFormattedHelp.

Link copied to clipboard
inline fun <T : Any> BaseCliktCommand<*>.findObject(key: String = Context.DEFAULT_OBJ_KEY): ReadOnlyProperty<BaseCliktCommand<*>, T?>

Find the closest object of type T, or null

Link copied to clipboard
inline fun <T : Any> BaseCliktCommand<*>.findOrSetObject(key: String = Context.DEFAULT_OBJ_KEY, crossinline default: () -> T): ReadOnlyProperty<BaseCliktCommand<*>, T>

Find the closest object of type T, setting context.obj if one is not found.

Link copied to clipboard
fun getFormattedHelp(error: CliktError? = null): String?

Return the help string for this command, optionally with an error.

Link copied to clipboard
open fun help(context: Context): String

The help text for this command.

Link copied to clipboard
open fun helpEpilog(context: Context): String

Help text to display at the end of the help output, after any parameters.

Link copied to clipboard
fun issueMessage(message: String)

Add a message to be printed after parsing

Link copied to clipboard
fun <T : Any> ParameterHolder.mutuallyExclusiveOptions(option1: OptionDelegate<out T?>, option2: OptionDelegate<out T?>, vararg options: OptionDelegate<out T?>, name: String? = null, help: String? = null): MutuallyExclusiveOptions<T, T?>

Declare a set of two or more mutually exclusive options.

Link copied to clipboard
fun ParameterHolder.option(vararg names: String, help: String = "", metavar: String? = null, hidden: Boolean = false, envvar: String? = null, helpTags: Map<String, String> = emptyMap(), completionCandidates: CompletionCandidates? = null, valueSourceKey: String? = null, eager: Boolean = false): RawOption

Create a property delegate option.

Link copied to clipboard
fun registerArgument(argument: Argument)

Register an argument with this command.

Link copied to clipboard

Get a read-only list of arguments registered in this command (e.g. via registerArgument or an argument delegate)

Link copied to clipboard

Get a read-only list of options registered in this command (e.g. via registerOption or an option delegate)

Link copied to clipboard

Get a read-only list of groups registered in this command (e.g. via registerOptionGroup or an OptionGroup delegate)

Link copied to clipboard

The names of all direct children of this command

Link copied to clipboard

Get a read-only list of commands registered as subcommands of this command.

Link copied to clipboard
open override fun registerOption(option: GroupableOption)

Register an option with this command or group.

fun registerOption(option: Option)

Register an option with this command.

Link copied to clipboard

Register a group with this command.

Link copied to clipboard
inline fun <T : Any> BaseCliktCommand<*>.requireObject(key: String = Context.DEFAULT_OBJ_KEY): ReadOnlyProperty<BaseCliktCommand<*>, T>

Find the closest object of type T, or throw a NullPointerException

Link copied to clipboard
fun resetContext(parent: Context? = null): Context

Create a new context for this command and all its subcommands recursively.

Link copied to clipboard
open override fun toString(): String