diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2017-05-02T10·16+0200 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2017-05-02T10·16+0200 |
commit | 174b68a2a2e9e58fa1a1a0036858a566c51684dc (patch) | |
tree | fb8af58549562a1c697474e7ea95e2ad80224747 | |
parent | 70581b63633016329789872c73dc48b1d498c729 (diff) |
build-hook: If there are no machines defined, quit permanently
-rw-r--r-- | src/build-remote/build-remote.cc | 5 | ||||
-rw-r--r-- | src/libstore/build.cc | 11 |
2 files changed, 14 insertions, 2 deletions
diff --git a/src/build-remote/build-remote.cc b/src/build-remote/build-remote.cc index acf571ff1563..388f1e04686a 100644 --- a/src/build-remote/build-remote.cc +++ b/src/build-remote/build-remote.cc @@ -150,6 +150,11 @@ int main (int argc, char * * argv) auto machines = readConf(); debug("got %d remote builders", machines.size()); + if (machines.empty()) { + std::cerr << "# decline-permanently\n"; + return; + } + string drvPath; string storeUri; for (string line; getline(cin, line);) { diff --git a/src/libstore/build.cc b/src/libstore/build.cc index a9649ea378ca..e756d3377c34 100644 --- a/src/libstore/build.cc +++ b/src/libstore/build.cc @@ -1598,8 +1598,15 @@ HookReply DerivationGoal::tryBuildHook() debug(format("hook reply is ‘%1%’") % reply); - if (reply == "decline" || reply == "postpone") - return reply == "decline" ? rpDecline : rpPostpone; + if (reply == "decline") + return rpDecline; + else if (reply == "decline-permanently") { + settings.useBuildHook = false; + worker.hook = 0; + return rpDecline; + } + else if (reply == "postpone") + return rpPostpone; else if (reply != "accept") throw Error(format("bad hook reply ‘%1%’") % reply); |