the hook every time we want to ask whether we can run a remote build (which can be very often), we now reuse a hook process for answering those queries until it accepts a build. So if there are N derivations to be built, at most N hooks will be started.
		
			
				
	
	
		
			23 lines
		
	
	
		
			No EOL
		
	
	
		
			408 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			No EOL
		
	
	
		
			408 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#! /bin/sh
 | 
						|
 | 
						|
#set -x
 | 
						|
 | 
						|
while read x y drv rest; do
 | 
						|
 | 
						|
    echo "HOOK for $drv" >&2
 | 
						|
 | 
						|
    outPath=`sed 's/Derive(\[("out",\"\([^\"]*\)\".*/\1/' $drv`
 | 
						|
 | 
						|
    echo "output path is $outPath" >&2
 | 
						|
 | 
						|
    if `echo $outPath | grep -q input-1`; then
 | 
						|
        echo "# accept" >&2
 | 
						|
        read inputs
 | 
						|
        read outputs
 | 
						|
        mkdir $outPath
 | 
						|
        echo "BAR" > $outPath/foo
 | 
						|
    else
 | 
						|
        echo "# decline" >&2
 | 
						|
    fi
 | 
						|
 | 
						|
done |