@ -46,6 +46,8 @@
add-to-store
build-derivations
current-build-output-port
%store-prefix
store-path?
derivation-path? ) )
@ -274,7 +276,15 @@
( process-stderr s )
s ) ) ) ) ) ) ) )
( define current-build-output-port
;; The port where build output is sent.
( make-parameter ( current-error-port ) ) )
( define ( process-stderr server )
" Read standard output and standard error from SERVER, writing it to
CURRENT-BUILD-OUTPUT-PORT . Return #t when SERVER is done sending data, and
#f otherwise ; in the latter case, the caller should call `process-stderr'
again until #t is returned or an error is raised . "
( define p
( nix-server-socket server ) )
@ -287,15 +297,16 @@
( let ( ( k ( read-int p ) ) )
( cond ( ( = k %stderr-write )
( read-string p ) )
( read-string p )
#f )
( ( = k %stderr-read )
( let ( ( len ( read-int p ) ) )
( read-string p ) ; FIXME: what to do?
) )
#f ) )
( ( = k %stderr-next )
( let ( ( s ( read-string p ) ) )
( display s ( current-error -port ) )
s ) )
( display s ( current-build-output -port ) )
#f ) )
( ( = k %stderr-error )
( let ( ( error ( read-string p ) )
( status ( if ( >= ( nix-server-minor-version server ) 8 )
@ -305,6 +316,7 @@
( message error )
( status status ) ) ) ) ) )
( ( = k %stderr-last )
;; The daemon is done (see `stopWork' in `nix-worker.cc'.)
#t )
( else
( raise ( condition ( &nix-protocol-error
@ -343,7 +355,8 @@
( send use-build-hook? ) )
( if ( >= ( nix-server-minor-version server ) 4 )
( send build-verbosity log-type print-build-trace ) )
( process-stderr server ) ) )
( let loop ( ( done? ( process-stderr server ) ) )
( or done? ( process-stderr server ) ) ) ) )
( define-syntax define-operation
( syntax-rules ( )
@ -354,7 +367,9 @@
( write-int ( operation-id name ) s )
( write-arg type arg s )
. . .
( process-stderr server )
;; Loop until the server is done sending error output.
( let loop ( ( done? ( process-stderr server ) ) )
( or done? ( loop ( process-stderr server ) ) ) )
( read-arg return s ) ) ) ) ) )
( define-operation ( add-text-to-store ( string name ) ( string text )
@ -371,7 +386,8 @@
store-path )
( define-operation ( build-derivations ( string-list derivations ) )
"Build DERIVATIONS; return #t on success."
" Build DERIVATIONS, and return when the worker is done building them .
Return #t on success . "
boolean )