mirror of
https://github.com/NixOS/nix
synced 2025-07-06 21:41:48 +02:00
Add a Config class to simplify adding configuration settings
The typical use is to inherit Config and add Setting<T> members: class MyClass : private Config { Setting<int> foo{this, 123, "foo", "the number of foos to use"}; Setting<std::string> bar{this, "blabla", "bar", "the name of the bar"}; MyClass() : Config(readConfigFile("/etc/my-app.conf")) { std::cout << foo << "\n"; // will print 123 unless overriden } }; Currently, this is used by Store and its subclasses for store parameters. You now get a warning if you specify a non-existant store parameter in a store URI.
This commit is contained in:
parent
568a099c88
commit
2040240e23
16 changed files with 334 additions and 40 deletions
|
@ -3051,13 +3051,11 @@ Path DerivationGoal::openLogFile()
|
|||
string baseName = baseNameOf(drvPath);
|
||||
|
||||
/* Create a log file. */
|
||||
Path dir = (format("%1%/%2%/%3%/") % worker.store.logDir % worker.store.drvsLogDir % string(baseName, 0, 2)).str();
|
||||
Path dir = fmt("%s/%s/%s/", worker.store.logDir, worker.store.drvsLogDir, string(baseName, 0, 2));
|
||||
createDirs(dir);
|
||||
|
||||
Path logFileName = (format("%1%/%2%%3%")
|
||||
% dir
|
||||
% string(baseName, 2)
|
||||
% (settings.compressLog ? ".bz2" : "")).str();
|
||||
Path logFileName = fmt("%s/%s%s", dir, string(baseName, 2),
|
||||
settings.compressLog ? ".bz2" : "");
|
||||
|
||||
fdLogFile = open(logFileName.c_str(), O_CREAT | O_WRONLY | O_TRUNC | O_CLOEXEC, 0666);
|
||||
if (!fdLogFile) throw SysError(format("creating log file ‘%1%’") % logFileName);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue