Remove the builder-files option
You can now include files via the "builders" option, using the syntax "@<filename>". Having only one option makes it easier to override builders completely. For backward compatibility, the default is "@/etc/nix/machines", or "@<filename>" for each file name in NIX_REMOTE_SYSTEMS.
This commit is contained in:
parent
d4609bb3af
commit
af241ae7d3
3 changed files with 21 additions and 16 deletions
|
@ -53,7 +53,12 @@ Settings::Settings()
|
||||||
|
|
||||||
/* Backwards compatibility. */
|
/* Backwards compatibility. */
|
||||||
auto s = getEnv("NIX_REMOTE_SYSTEMS");
|
auto s = getEnv("NIX_REMOTE_SYSTEMS");
|
||||||
if (s != "") builderFiles = tokenizeString<Strings>(s, ":");
|
if (s != "") {
|
||||||
|
Strings ss;
|
||||||
|
for (auto & p : tokenizeString<Strings>(s, ":"))
|
||||||
|
ss.push_back("@" + p);
|
||||||
|
builders = concatStringsSep(" ", ss);
|
||||||
|
}
|
||||||
|
|
||||||
#if defined(__linux__) && defined(SANDBOX_SHELL)
|
#if defined(__linux__) && defined(SANDBOX_SHELL)
|
||||||
sandboxPaths = tokenizeString<StringSet>("/bin/sh=" SANDBOX_SHELL);
|
sandboxPaths = tokenizeString<StringSet>("/bin/sh=" SANDBOX_SHELL);
|
||||||
|
|
|
@ -138,13 +138,9 @@ public:
|
||||||
PathSetting buildHook{this, true, nixLibexecDir + "/nix/build-remote", "build-hook",
|
PathSetting buildHook{this, true, nixLibexecDir + "/nix/build-remote", "build-hook",
|
||||||
"The path of the helper program that executes builds to remote machines."};
|
"The path of the helper program that executes builds to remote machines."};
|
||||||
|
|
||||||
Setting<std::string> builders{this, "", "builders",
|
Setting<std::string> builders{this, "@" + nixConfDir + "/machines", "builders",
|
||||||
"A semicolon-separated list of build machines, in the format of nix.machines."};
|
"A semicolon-separated list of build machines, in the format of nix.machines."};
|
||||||
|
|
||||||
Setting<Strings> builderFiles{this,
|
|
||||||
{nixConfDir + "/machines"}, "builder-files",
|
|
||||||
"A list of files specifying build machines."};
|
|
||||||
|
|
||||||
Setting<off_t> reservedSize{this, 8 * 1024 * 1024, "gc-reserved-space",
|
Setting<off_t> reservedSize{this, 8 * 1024 * 1024, "gc-reserved-space",
|
||||||
"Amount of reserved disk space for the garbage collector."};
|
"Amount of reserved disk space for the garbage collector."};
|
||||||
|
|
||||||
|
|
|
@ -47,9 +47,22 @@ bool Machine::mandatoryMet(const std::set<string> & features) const {
|
||||||
void parseMachines(const std::string & s, Machines & machines)
|
void parseMachines(const std::string & s, Machines & machines)
|
||||||
{
|
{
|
||||||
for (auto line : tokenizeString<std::vector<string>>(s, "\n;")) {
|
for (auto line : tokenizeString<std::vector<string>>(s, "\n;")) {
|
||||||
chomp(line);
|
trim(line);
|
||||||
line.erase(std::find(line.begin(), line.end(), '#'), line.end());
|
line.erase(std::find(line.begin(), line.end(), '#'), line.end());
|
||||||
if (line.empty()) continue;
|
if (line.empty()) continue;
|
||||||
|
|
||||||
|
if (line[0] == '@') {
|
||||||
|
auto file = trim(std::string(line, 1));
|
||||||
|
try {
|
||||||
|
parseMachines(readFile(file), machines);
|
||||||
|
} catch (const SysError & e) {
|
||||||
|
if (e.errNo != ENOENT)
|
||||||
|
throw;
|
||||||
|
debug("cannot find machines file '%s'", file);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
auto tokens = tokenizeString<std::vector<string>>(line);
|
auto tokens = tokenizeString<std::vector<string>>(line);
|
||||||
auto sz = tokens.size();
|
auto sz = tokens.size();
|
||||||
if (sz < 1)
|
if (sz < 1)
|
||||||
|
@ -74,15 +87,6 @@ Machines getMachines()
|
||||||
{
|
{
|
||||||
Machines machines;
|
Machines machines;
|
||||||
|
|
||||||
for (auto & file : settings.builderFiles.get()) {
|
|
||||||
try {
|
|
||||||
parseMachines(readFile(file), machines);
|
|
||||||
} catch (const SysError & e) {
|
|
||||||
if (e.errNo != ENOENT)
|
|
||||||
throw;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
parseMachines(settings.builders, machines);
|
parseMachines(settings.builders, machines);
|
||||||
|
|
||||||
return machines;
|
return machines;
|
||||||
|
|
Loading…
Reference in a new issue