diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2017-05-02T11·44+0200 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2017-05-02T13·42+0200 |
commit | 1a68710d4dff609bbaf61db3e17a2573f0aadf17 (patch) | |
tree | 433ebeb119f209dd69870a9d9b80c0de99de2846 /src/build-remote | |
parent | ebc9f36a8111ddecc8e265e8a6a70048218f244d (diff) |
Add an option for specifying remote builders
This is useful for one-off situations where you want to specify a builder on the command line instead of having to mess with nix.machines. E.g. $ nix-build -A hello --argstr system x86_64-darwin \ --option builders 'root@macstadium1 x86_64-darwin' will perform the specified build on "macstadium1". It also removes the need for a separate nix.machines file since you can specify builders in nix.conf directly. (In fact nix.machines is yet another hack that predates the general nix.conf configuration file, IIRC.) Note: this option is supported by the daemon for trusted users. The fact that this allows trusted users to specify paths to SSH keys to which they don't normally have access is maybe a bit too much trust...
Diffstat (limited to 'src/build-remote')
-rw-r--r-- | src/build-remote/build-remote.cc | 11 | ||||
-rw-r--r-- | src/build-remote/local.mk | 2 |
2 files changed, 3 insertions, 10 deletions
diff --git a/src/build-remote/build-remote.cc b/src/build-remote/build-remote.cc index 8a9d4571fefe..5cd3c518b787 100644 --- a/src/build-remote/build-remote.cc +++ b/src/build-remote/build-remote.cc @@ -45,7 +45,7 @@ int main (int argc, char * * argv) unsetenv("DISPLAY"); unsetenv("SSH_ASKPASS"); - if (argc != 5) + if (argc != 6) throw UsageError("called without required arguments"); auto store = openStore(); @@ -54,6 +54,7 @@ int main (int argc, char * * argv) settings.maxSilentTime = std::stoll(argv[2]); settings.buildTimeout = std::stoll(argv[3]); verbosity = (Verbosity) std::stoll(argv[4]); + settings.builders = argv[5]; /* It would be more appropriate to use $XDG_RUNTIME_DIR, since that gets cleared on reboot, but it wouldn't work on OS X. */ @@ -62,13 +63,7 @@ int main (int argc, char * * argv) std::shared_ptr<Store> sshStore; AutoCloseFD bestSlotLock; - Machines machines; - try { - parseMachines(readFile(getEnv("NIX_REMOTE_SYSTEMS", SYSCONFDIR "/nix/machines")), machines); - } catch (const SysError & e) { - if (e.errNo != ENOENT) - throw; - } + auto machines = getMachines(); debug("got %d remote builders", machines.size()); if (machines.empty()) { diff --git a/src/build-remote/local.mk b/src/build-remote/local.mk index 62d5a010c247..64368a43ff73 100644 --- a/src/build-remote/local.mk +++ b/src/build-remote/local.mk @@ -7,5 +7,3 @@ build-remote_INSTALL_DIR := $(libexecdir)/nix build-remote_LIBS = libmain libutil libformat libstore build-remote_SOURCES := $(d)/build-remote.cc - -build-remote_CXXFLAGS = -DSYSCONFDIR="\"$(sysconfdir)\"" |