Nix 2.26.3
Nix, the purely functional package manager; unstable internal interfaces
 
Loading...
Searching...
No Matches
nix::MultiCommand Class Reference

#include <args.hh>

Inheritance diagram for nix::MultiCommand:
nix::Args nix::NixArgs nix::NixMultiCommand CmdConfig CmdDerivation CmdEnv CmdFlake CmdHash CmdKey CmdNar CmdProfile CmdRealisation CmdRegistry CmdStore

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
 
- Public Member Functions inherited from nix::Args
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)
 
RootArgsgetRoot ()
 

Public Attributes

Commands commands
 
std::map< Command::Category, std::string > categories
 
std::optional< std::pair< std::string, ref< Command > > > command
 
- Public Attributes inherited from nix::Args
MultiCommandparent = nullptr
 

Protected Attributes

std::string commandName = ""
 
- Protected Attributes inherited from nix::Args
std::map< std::string, Flag::ptr > longFlags
 
std::map< char, Flag::ptr > shortFlags
 
std::list< ExpectedArgexpectedArgs
 
std::list< ExpectedArgprocessedArgs
 
std::set< std::string > hiddenCategories
 

Additional Inherited Members

- Static Public Attributes inherited from nix::Args
static CompleterFun completePath
 
static CompleterFun completeDir
 
- Protected Types inherited from nix::Args
using CompleterFun = void(AddCompletions &, size_t, std::string_view)
 
using CompleterClosure = std::function<CompleterFun>
 
- Protected Member Functions inherited from nix::Args
virtual Strings::iterator rewriteArgs (Strings &args, Strings::iterator pos)
 
virtual void initialFlagsProcessed ()
 
- Static Protected Attributes inherited from nix::Args
static const size_t ArityAny = std::numeric_limits<size_t>::max()
 

Detailed Description

An argument parser that supports multiple subcommands, i.e. <command> <subcommand>.

Member Function Documentation

◆ processArgs()

bool nix::MultiCommand::processArgs ( const Strings & args,
bool finish )
overridevirtual

Process some positional arugments

Parameters
finishWe 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.

◆ processFlag()

bool nix::MultiCommand::processFlag ( Strings::iterator & pos,
Strings::iterator end )
overridevirtual

Process a single flag and its arguments, pulling from an iterator of raw CLI args as needed.

Reimplemented from nix::Args.

◆ toJSON()

nlohmann::json nix::MultiCommand::toJSON ( )
overridevirtual

Reimplemented from nix::Args.

Member Data Documentation

◆ command

std::optional<std::pair<std::string, ref<Command> > > nix::MultiCommand::command

Selected command, if any.


The documentation for this class was generated from the following files: