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 |