Nix  2.93.0-dev
Lix: A modern, delicious implementation of the Nix package manager; unstable internal interfaces
Loading...
Searching...
No Matches
nix::ExternalCommand Class Reference

#include <args.hh>

Inheritance diagram for nix::ExternalCommand:
[legend]
Collaboration diagram for nix::ExternalCommand:
[legend]

Public Member Functions

 ExternalCommand (AsyncIoRoot &aio, std::filesystem::path absoluteBinaryPath)
 
virtual bool processFlag (Strings::iterator &pos, Strings::iterator end) override
 
virtual bool processArgs (const Strings &args, bool finish) override
 
virtual void run () override
 
virtual std::optional< ExperimentalFeatureexperimentalFeature () override
 
virtual Category category () override
 
virtual AsyncIoRootaio () override
 
- Public Member Functions inherited from nix::Args
virtual std::string description ()
 
virtual bool forceImpureByDefault ()
 
virtual std::string doc ()
 
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 expectArgs (const std::string &label, std::vector< std::string > *dest)
 
virtual JSON toJSON ()
 
RootArgs & getRoot ()
 

Public Attributes

std::filesystem::path absoluteBinaryPath
 
- Public Attributes inherited from nix::Args
MultiCommandparent = nullptr
 

Static Public Attributes

static constexpr std::string_view lixExternalPrefix = "lix-"
 
- Static Public Attributes inherited from nix::Command
static constexpr Category catDefault = 0
 
static constexpr Category catCustom = 1000
 
- Static Public Attributes inherited from nix::Args
static CompleterFun completePath
 
static CompleterFun completeDir
 

Additional Inherited Members

- Public Types inherited from nix::Command
typedef int Category
 
- Protected Types inherited from nix::Args
typedef void CompleterFun(AddCompletions &, size_t, std::string_view)
 
typedef std::function< CompleterFunCompleterClosure
 
- Protected Member Functions inherited from nix::Args
virtual Strings::iterator rewriteArgs (Strings &args, Strings::iterator pos)
 
virtual void initialFlagsProcessed ()
 
virtual std::optional< std::reference_wrapper< RootArgs > > asRootArgs ()
 
- 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
 
- Static Protected Attributes inherited from nix::Args
static const size_t ArityAny = std::numeric_limits<size_t>::max()
 

Detailed Description

An external command wrapper which is represented by a external binary. i.e. lix-flakes.

Member Function Documentation

◆ aio()

virtual AsyncIoRoot & nix::ExternalCommand::aio ( )
inlineoverridevirtual

Implements nix::Args.

◆ category()

virtual Category nix::ExternalCommand::category ( )
inlineoverridevirtual

Reimplemented from nix::Command.

◆ experimentalFeature()

virtual std::optional< ExperimentalFeature > nix::ExternalCommand::experimentalFeature ( )
inlineoverridevirtual

Reimplemented from nix::Command.

◆ processArgs()

bool nix::ExternalCommand::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.
Returns
true if the passed arguments were fully consumed and no further processing is required, false if the passed arguments should be processed with more context.

Reimplemented from nix::Args.

◆ processFlag()

bool nix::ExternalCommand::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.

Returns
false if the flag is not recognised.

Reimplemented from nix::Args.

◆ run()

void nix::ExternalCommand::run ( )
overridevirtual

Entry point to the command

Implements nix::Command.


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