mirror of
https://github.com/NixOS/nix
synced 2025-06-30 07:33:16 +02:00
* A GC setting `gc-keep-outputs' to specify whether output paths of
derivations should be kept.
This commit is contained in:
parent
2e6bf723e4
commit
a37338815d
7 changed files with 102 additions and 7 deletions
|
@ -1,10 +1,14 @@
|
|||
#include "globals.hh"
|
||||
|
||||
#include <map>
|
||||
|
||||
|
||||
string nixStore = "/UNINIT";
|
||||
string nixDataDir = "/UNINIT";
|
||||
string nixLogDir = "/UNINIT";
|
||||
string nixStateDir = "/UNINIT";
|
||||
string nixDBPath = "/UNINIT";
|
||||
string nixConfDir = "/UNINIT";
|
||||
|
||||
bool keepFailed = false;
|
||||
|
||||
|
@ -17,3 +21,49 @@ Verbosity buildVerbosity = lvlInfo;
|
|||
unsigned int maxBuildJobs = 1;
|
||||
|
||||
bool readOnlyMode = false;
|
||||
|
||||
|
||||
static bool settingsRead = false;
|
||||
|
||||
static map<string, string> settings;
|
||||
|
||||
|
||||
static void readSettings()
|
||||
{
|
||||
Path settingsFile = (format("%1%/%2%") % nixConfDir % "nix.conf").str();
|
||||
if (!pathExists(settingsFile)) return;
|
||||
string contents = readFile(settingsFile);
|
||||
|
||||
unsigned int pos = 0;
|
||||
|
||||
while (pos < contents.size()) {
|
||||
string line;
|
||||
while (pos < contents.size() && contents[pos] != '\n')
|
||||
line += contents[pos++];
|
||||
pos++;
|
||||
|
||||
unsigned int hash = line.find('#');
|
||||
if (hash != string::npos)
|
||||
line = string(line, 0, hash);
|
||||
|
||||
if (line.find_first_not_of(" ") == string::npos) continue;
|
||||
|
||||
istringstream is(line);
|
||||
string name, sep, value;
|
||||
is >> name >> sep >> value;
|
||||
if (sep != "=" || !is)
|
||||
throw Error(format("illegal configuration line `%1%'") % line);
|
||||
|
||||
settings[name] = value;
|
||||
};
|
||||
|
||||
settingsRead = true;
|
||||
}
|
||||
|
||||
|
||||
string querySetting(const string & name, const string & def)
|
||||
{
|
||||
if (!settingsRead) readSettings();
|
||||
map<string, string>::iterator i = settings.find(name);
|
||||
return i == settings.end() ? def : i->second;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue