#include <args.hh>
Public Member Functions | |
MultiCommand (std::string_view commandName, const Commands &commands) | |
bool | processFlag (Strings::iterator &pos, Strings::iterator end) override |
bool | processArgs (const Strings &args, bool finish) override |
nlohmann::json | toJSON () override |
![]() | |
virtual std::string | description () |
virtual bool | forceImpureByDefault () |
virtual std::string | doc () |
virtual Path | getCommandBaseDir () const |
Get the base directory for the command. | |
void | addFlag (Flag &&flag) |
void | removeFlag (const std::string &longName) |
void | expectArgs (ExpectedArg &&arg) |
void | expectArg (const std::string &label, std::string *dest, bool optional=false) |
void | expectArg (const std::string &label, std::filesystem::path *dest, bool optional=false) |
void | expectArgs (const std::string &label, std::vector< std::string > *dest) |
RootArgs & | getRoot () |
Public Attributes | |
Commands | commands |
std::map< Command::Category, std::string > | categories |
std::optional< std::pair< std::string, ref< Command > > > | command |
![]() | |
MultiCommand * | parent = nullptr |
Protected Attributes | |
std::string | commandName = "" |
![]() | |
std::map< std::string, Flag::ptr > | longFlags |
std::map< char, Flag::ptr > | shortFlags |
std::list< ExpectedArg > | expectedArgs |
std::list< ExpectedArg > | processedArgs |
std::set< std::string > | hiddenCategories |
Additional Inherited Members | |
![]() | |
static CompleterFun | completePath |
static CompleterFun | completeDir |
![]() | |
using | CompleterFun = void(AddCompletions &, size_t, std::string_view) |
using | CompleterClosure = std::function<CompleterFun> |
![]() | |
virtual Strings::iterator | rewriteArgs (Strings &args, Strings::iterator pos) |
virtual void | initialFlagsProcessed () |
![]() | |
static const size_t | ArityAny = std::numeric_limits<size_t>::max() |
An argument parser that supports multiple subcommands, i.e. <command> <subcommand>
.
|
overridevirtual |
Process some positional arugments
finish | We have parsed everything else, and these are the only arguments left. Used because we accumulate some "pending args" we might have left over. |
Reimplemented from nix::Args.
|
overridevirtual |
Process a single flag and its arguments, pulling from an iterator of raw CLI args as needed.
Reimplemented from nix::Args.
|
overridevirtual |
Reimplemented from nix::Args.
Selected command, if any.