Convert Settings to the new config system
This makes all config options self-documenting. Unknown or unparseable config settings and --option flags now cause a warning.
This commit is contained in:
parent
6bd9576aeb
commit
ba9ad29fdb
18 changed files with 348 additions and 546 deletions
|
@ -22,7 +22,11 @@ MixCommonArgs::MixCommonArgs(const string & programName)
|
|||
[](Strings ss) {
|
||||
auto name = ss.front(); ss.pop_front();
|
||||
auto value = ss.front();
|
||||
settings.set(name, value);
|
||||
try {
|
||||
settings.set(name, value);
|
||||
} catch (UsageError & e) {
|
||||
warn(e.what());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -138,9 +138,6 @@ void initNix()
|
|||
struct timeval tv;
|
||||
gettimeofday(&tv, 0);
|
||||
srandom(tv.tv_usec);
|
||||
|
||||
if (char *pack = getenv("_NIX_OPTIONS"))
|
||||
settings.unpack(pack);
|
||||
}
|
||||
|
||||
|
||||
|
@ -156,10 +153,10 @@ struct LegacyArgs : public MixCommonArgs
|
|||
&settings.verboseBuild, false);
|
||||
|
||||
mkFlag('K', "keep-failed", "keep temporary directories of failed builds",
|
||||
&settings.keepFailed);
|
||||
&(bool&) settings.keepFailed);
|
||||
|
||||
mkFlag('k', "keep-going", "keep going after a build fails",
|
||||
&settings.keepGoing);
|
||||
&(bool&) settings.keepGoing);
|
||||
|
||||
mkFlag(0, "fallback", "build from source if substitution fails", []() {
|
||||
settings.set("build-fallback", "true");
|
||||
|
@ -184,7 +181,7 @@ struct LegacyArgs : public MixCommonArgs
|
|||
&settings.readOnlyMode);
|
||||
|
||||
mkFlag(0, "no-build-hook", "disable use of the build hook mechanism",
|
||||
&settings.useBuildHook, false);
|
||||
&(bool&) settings.useBuildHook, false);
|
||||
|
||||
mkFlag(0, "show-trace", "show Nix expression stack trace in evaluation errors",
|
||||
&settings.showTrace);
|
||||
|
@ -218,7 +215,6 @@ void parseCmdLine(int argc, char * * argv,
|
|||
std::function<bool(Strings::iterator & arg, const Strings::iterator & end)> parseArg)
|
||||
{
|
||||
LegacyArgs(baseNameOf(argv[0]), parseArg).parseCmdline(argvToStrings(argc, argv));
|
||||
settings.update();
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue