From 78206f06ecb2f5d6dba85b5f709251030e966f1c Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 10 May 2013 01:09:46 +0200 Subject: [PATCH] build-remote.pl: Allow a machine to refuse a build Before selecting a machine, build-remote.pl will try to run the command "nix-builds-inhibited" on the machine. If this command exists and returns a 0 exit code, then the machine won't be used. It's up to the user to provide this command, but it would typically be a script that checks whether there is enough disk space and whether the load is not too high. --- scripts/build-remote.pl.in | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/build-remote.pl.in b/scripts/build-remote.pl.in index e7e753879..6be4c45eb 100755 --- a/scripts/build-remote.pl.in +++ b/scripts/build-remote.pl.in @@ -195,7 +195,9 @@ REQ: while (1) { # Connect to the selected machine. @sshOpts = ("-i", $machine->{sshKeys}, "-x"); $hostName = $machine->{hostName}; - last REQ if openSSHConnection $hostName; + last REQ if + openSSHConnection($hostName) && + system("ssh $hostName @sshOpts nix-builds-inhibited >/dev/null 2>&1") != 0; warn "unable to open SSH connection to $hostName, trying other available machines...\n"; $machine->{enabled} = 0;