nix: Add --help-config flag
This commit is contained in:
parent
b8283773bd
commit
aa952d5f0b
|
@ -41,7 +41,7 @@ protected:
|
|||
|
||||
virtual bool processFlag(Strings::iterator & pos, Strings::iterator end);
|
||||
|
||||
void printFlags(std::ostream & out);
|
||||
virtual void printFlags(std::ostream & out);
|
||||
|
||||
/* Positional arguments. */
|
||||
struct ExpectedArg
|
||||
|
|
|
@ -31,6 +31,8 @@ class Config
|
|||
{
|
||||
friend class AbstractSetting;
|
||||
|
||||
public:
|
||||
|
||||
struct SettingData
|
||||
{
|
||||
bool isAlias;
|
||||
|
@ -40,7 +42,11 @@ class Config
|
|||
{ }
|
||||
};
|
||||
|
||||
std::map<std::string, SettingData> _settings;
|
||||
typedef std::map<std::string, SettingData> Settings;
|
||||
|
||||
private:
|
||||
|
||||
Settings _settings;
|
||||
|
||||
StringMap initials;
|
||||
|
||||
|
@ -58,6 +64,8 @@ public:
|
|||
|
||||
StringMap getSettings(bool overridenOnly = false);
|
||||
|
||||
const Settings & _getSettings() { return _settings; }
|
||||
|
||||
void applyConfigFile(const Path & path, bool fatal = false);
|
||||
|
||||
void resetOverriden();
|
||||
|
|
|
@ -21,10 +21,30 @@ struct NixArgs : virtual MultiCommand, virtual MixCommonArgs
|
|||
throw Exit();
|
||||
});
|
||||
|
||||
mkFlag(0, "help-config", "show configuration options", [=]() {
|
||||
std::cout << "The following configuration options are available:\n\n";
|
||||
Table2 tbl;
|
||||
for (const auto & s : settings._getSettings())
|
||||
if (!s.second.isAlias)
|
||||
tbl.emplace_back(s.first, s.second.setting->description);
|
||||
printTable(std::cout, tbl);
|
||||
throw Exit();
|
||||
});
|
||||
|
||||
mkFlag(0, "version", "show version information", std::bind(printVersion, programName));
|
||||
|
||||
settings.convertToArgs(*this);
|
||||
}
|
||||
|
||||
void printFlags(std::ostream & out) override
|
||||
{
|
||||
Args::printFlags(out);
|
||||
std::cout <<
|
||||
"\n"
|
||||
"In addition, most configuration settings can be overriden using ‘--<name> <value>’.\n"
|
||||
"Boolean settings can be overriden using ‘--<name>’ or ‘--no-<name>’. See ‘nix\n"
|
||||
"--help-config’ for a list of configuration settings.\n";
|
||||
}
|
||||
};
|
||||
|
||||
void mainWrapped(int argc, char * * argv)
|
||||
|
|
Loading…
Reference in a new issue