|
kaycxx-cli
C++ CLI library
|
Common base class for an application and its commands. More...
#include <kaycxx/cli/command.hpp>

Public Member Functions | |
| command (command const &)=delete | |
| Prevents copying command definitions. | |
| command & | operator= (command const &)=delete |
| Prevents copy-assigning command definitions. | |
| virtual | ~command ()=default |
| Destroys this command and all definitions owned by it. | |
| std::string const & | name () const noexcept |
| Returns the command name. | |
| std::optional< std::string > const & | description () const noexcept |
| Returns this command's configured description. | |
| cli::flag_handle | flag (std::string_view name, std::optional< std::string_view > description=std::nullopt) |
| Registers a flag without a short alias. | |
| cli::flag_handle | flag (std::string_view name, char alias, std::optional< std::string_view > description=std::nullopt) |
| Registers a flag with a short alias. | |
| template<parseable_value T> | |
| cli::option_handle< T > | option (std::string_view name, std::string_view value_name, std::optional< std::string_view > description=std::nullopt) |
| Registers an option without a short alias. | |
| template<parseable_value T> | |
| cli::option_handle< T > | option (std::string_view name, char alias, std::string_view value_name, std::optional< std::string_view > description=std::nullopt) |
| Registers an option with a short alias. | |
| template<parseable_value T> | |
| cli::repeatable_option_handle< T > | repeatable_option (std::string_view name, std::string_view value_name, std::optional< std::string_view > description=std::nullopt) |
| Registers a repeatable option without a short alias. | |
| template<parseable_value T> | |
| cli::repeatable_option_handle< T > | repeatable_option (std::string_view name, char alias, std::string_view value_name, std::optional< std::string_view > description=std::nullopt) |
| Registers a repeatable option with a short alias. | |
| template<parseable_value T> | |
| cli::parameter_handle< T > | parameter (std::string_view name, std::optional< std::string_view > description=std::nullopt) |
| Registers a single positional parameter. | |
| template<parseable_value T> | |
| cli::parameters_handle< T > | parameters (std::string_view name, std::optional< std::string_view > description=std::nullopt) |
| Registers a positional parameter list. | |
| cli::args | parse (int argc, char *argv[]) const |
| Parses command line arguments. | |
| int | print_help (std::ostream &out=std::cout) const |
| Writes generated help output. | |
| int | print_version (std::ostream &out=std::cout) const |
| Writes generated version output. | |
Protected Member Functions | |
| command (std::string_view name, std::optional< std::string_view > description, command *parent) | |
| Creates a command definition. | |
| command (command &&other) noexcept | |
| Moves a command definition. | |
| command_handle | add_command (std::string_view name, std::optional< std::string_view > description=std::nullopt) |
| Registers a child command. | |
Friends | |
| class | command_handle |
Common base class for an application and its commands.
A command owns all registered flags, options, positional parameters and child commands. Registration methods return lightweight handles to these owned definitions.
This class cannot be instantiated directly. Create an app and register commands through app::command() or command_handle::command().
|
protected |
Creates a command definition.
| name | Command name. |
| description | Optional command description. |
| parent | Parent command or null for the application. |
|
protectednoexcept |
Moves a command definition.
| other | Command definition to move from. |
|
protected |
Registers a child command.
| name | Command name. |
| description | Optional command description used by generated help output. |
| std::invalid_argument | When the name is already registered or this command has positional parameters. |
|
noexcept |
Returns this command's configured description.
| cli::flag_handle kaycxx::cli::command::flag | ( | std::string_view | name, |
| char | alias, | ||
| std::optional< std::string_view > | description = std::nullopt |
||
| ) |
Registers a flag with a short alias.
| name | Long flag name without the leading --. |
| alias | Short flag alias without the leading -. |
| description | Optional human-readable flag description used by generated help output. |
| std::invalid_argument | When the long name or short alias conflicts with a switch on this command, an ancestor, or a descendant. |
| cli::flag_handle kaycxx::cli::command::flag | ( | std::string_view | name, |
| std::optional< std::string_view > | description = std::nullopt |
||
| ) |
Registers a flag without a short alias.
| name | Long flag name without the leading --. |
| description | Optional human-readable flag description used by generated help output. |
| std::invalid_argument | When the long name conflicts with a switch on this command, an ancestor, or a descendant. |
|
noexcept |
Returns the command name.
|
inline |
Registers an option with a short alias.
| T | Parsed option value type. |
| name | Long option name without the leading --. |
| alias | Short option alias without the leading -. |
| value_name | Placeholder name for the option value used by generated help output. |
| description | Optional human-readable option description used by generated help output. |
| std::invalid_argument | When the long name or short alias conflicts with a switch on this command, an ancestor, or a descendant. |
|
inline |
Registers an option without a short alias.
| T | Parsed option value type. |
| name | Long option name without the leading --. |
| value_name | Placeholder name for the option value used by generated help output. |
| description | Optional human-readable option description used by generated help output. |
| std::invalid_argument | When the long name conflicts with a switch on this command, an ancestor, or a descendant. |
|
inline |
Registers a single positional parameter.
| T | Parsed parameter value type. |
| name | Placeholder name used by generated help output and parse errors. |
| description | Optional human-readable parameter description used by generated help output. |
|
inline |
Registers a positional parameter list.
| T | Parsed parameter value type. |
| name | Placeholder name used by generated help output and parse errors. |
| description | Optional human-readable parameter description used by generated help output. |
Parses command line arguments.
| argc | Argument count as received by main. |
| argv | Argument values as received by main. |
Positional arguments are stored without validation. They are validated and converted when first accessed through the returned argument collection or when args::validate() is called explicitly.
| parse_error | When a subcommand or switch is unknown, an option value is missing or invalid, or multiple actions are specified. |
| int kaycxx::cli::command::print_help | ( | std::ostream & | out = std::cout | ) | const |
Writes generated help output.
| out | Output stream receiving the generated help text. Defaults to standard output. |
| int kaycxx::cli::command::print_version | ( | std::ostream & | out = std::cout | ) | const |
Writes generated version output.
| out | Output stream receiving the generated version text. Defaults to standard output. |
|
inline |
Registers a repeatable option with a short alias.
| T | Parsed option value type. |
| name | Long option name without the leading --. |
| alias | Short option alias without the leading -. |
| value_name | Placeholder name for each option value used by generated help output. |
| description | Optional human-readable option description used by generated help output. |
| std::invalid_argument | When the long name or short alias conflicts with a switch on this command, an ancestor, or a descendant. |
|
inline |
Registers a repeatable option without a short alias.
| T | Parsed option value type. |
| name | Long option name without the leading --. |
| value_name | Placeholder name for each option value used by generated help output. |
| description | Optional human-readable option description used by generated help output. |
| std::invalid_argument | When the long name conflicts with a switch on this command, an ancestor, or a descendant. |