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").master
parent
1007640a63
commit
f0428c18f8
|
@ -110,11 +110,11 @@
|
||||||
(packages inferior-package-promise) ;promise of inferior packages
|
(packages inferior-package-promise) ;promise of inferior packages
|
||||||
(table inferior-package-table)) ;promise of vhash
|
(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
|
"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
|
'DIRECTORY/COMMAND repl' if it exists, or falls back to some other method if
|
||||||
it's an old Guix."
|
it's an old Guix."
|
||||||
(let ((pipe (with-error-to-port (%make-void-port "w")
|
(let ((pipe (with-error-to-port error-port
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(open-pipe* OPEN_BOTH
|
(open-pipe* OPEN_BOTH
|
||||||
(string-append directory "/" command)
|
(string-append directory "/" command)
|
||||||
|
@ -161,11 +161,13 @@ inferior."
|
||||||
(_
|
(_
|
||||||
#f)))
|
#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
|
"Open the inferior Guix in DIRECTORY, running 'DIRECTORY/COMMAND repl' or
|
||||||
equivalent. Return #f if the inferior could not be launched."
|
equivalent. Return #f if the inferior could not be launched."
|
||||||
(define pipe
|
(define pipe
|
||||||
(inferior-pipe directory command))
|
(inferior-pipe directory command error-port))
|
||||||
|
|
||||||
(port->inferior pipe close-pipe))
|
(port->inferior pipe close-pipe))
|
||||||
|
|
||||||
|
|
Reference in New Issue