mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-25 05:48:07 -05:00
inferior: Allow controlling the inferior error port.
Previously, stderr for the inferior process would always be sent to /dev/null because the current-output-port when the process is launched is a void port. This change means that it's possible to pass in a different port to use. * guix/inferior.scm (inferior-pipe): Take the error-port as an argument. (open-inferior): Add new error-port keyword argument, with a default of (%make-void-port "w").
This commit is contained in:
parent
1007640a63
commit
f0428c18f8
1 changed files with 6 additions and 4 deletions
|
@ -110,11 +110,11 @@ (define-record-type <inferior>
|
|||
(packages inferior-package-promise) ;promise of inferior packages
|
||||
(table inferior-package-table)) ;promise of vhash
|
||||
|
||||
(define (inferior-pipe directory command)
|
||||
(define* (inferior-pipe directory command error-port)
|
||||
"Return an input/output pipe on the Guix instance in DIRECTORY. This runs
|
||||
'DIRECTORY/COMMAND repl' if it exists, or falls back to some other method if
|
||||
it's an old Guix."
|
||||
(let ((pipe (with-error-to-port (%make-void-port "w")
|
||||
(let ((pipe (with-error-to-port error-port
|
||||
(lambda ()
|
||||
(open-pipe* OPEN_BOTH
|
||||
(string-append directory "/" command)
|
||||
|
@ -161,11 +161,13 @@ (define* (port->inferior pipe #:optional (close close-port))
|
|||
(_
|
||||
#f)))
|
||||
|
||||
(define* (open-inferior directory #:key (command "bin/guix"))
|
||||
(define* (open-inferior directory
|
||||
#:key (command "bin/guix")
|
||||
(error-port (%make-void-port "w")))
|
||||
"Open the inferior Guix in DIRECTORY, running 'DIRECTORY/COMMAND repl' or
|
||||
equivalent. Return #f if the inferior could not be launched."
|
||||
(define pipe
|
||||
(inferior-pipe directory command))
|
||||
(inferior-pipe directory command error-port))
|
||||
|
||||
(port->inferior pipe close-pipe))
|
||||
|
||||
|
|
Loading…
Reference in a new issue