diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2017-10-24 10:52:34 +0200 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2017-10-24 10:54:43 +0200 |
commit | af241ae7d3d2a9975d43c9137806a6ffcb96e95b (patch) | |
tree | 3f9b324d49ef5e1cce76d55817dd2783eeb70e54 /src/libstore/machines.cc | |
parent | d4609bb3af14dc0e19f67caa262a47792c3bd73d (diff) |
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.
Diffstat (limited to 'src/libstore/machines.cc')
-rw-r--r-- | src/libstore/machines.cc | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/libstore/machines.cc b/src/libstore/machines.cc index 076c3cab3..d2faf4535 100644 --- a/src/libstore/machines.cc +++ b/src/libstore/machines.cc @@ -47,9 +47,22 @@ bool Machine::mandatoryMet(const std::set<string> & features) const { void parseMachines(const std::string & s, Machines & machines) { for (auto line : tokenizeString<std::vector<string>>(s, "\n;")) { - chomp(line); + trim(line); line.erase(std::find(line.begin(), line.end(), '#'), line.end()); 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 sz = tokens.size(); if (sz < 1) @@ -74,15 +87,6 @@ Machines getMachines() { 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); return machines; |