diff options
author | Ludovic Courtès <ludo@gnu.org> | 2019-06-10 17:11:43 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-07-04 18:05:02 +0200 |
commit | d0ffa321dd4917ddb9777728ccf90bd147fe51fb (patch) | |
tree | e3752901f7c0d1779135bde984f449322f411097 | |
parent | 92a4087bf4862d5ba9b77111eba3c68c2a1c4679 (diff) | |
download | guix-d0ffa321dd4917ddb9777728ccf90bd147fe51fb.tar guix-d0ffa321dd4917ddb9777728ccf90bd147fe51fb.tar.gz |
inferior: Add 'read-repl-response'.
* guix/inferior.scm (read-repl-response): New procedure.
(read-inferior-response): Use it.
-rw-r--r-- | guix/inferior.scm | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/guix/inferior.scm b/guix/inferior.scm index 63c95141d7..fee97750b6 100644 --- a/guix/inferior.scm +++ b/guix/inferior.scm @@ -59,6 +59,7 @@ inferior-eval inferior-eval-with-store inferior-object? + read-repl-response inferior-packages inferior-available-packages @@ -183,7 +184,8 @@ equivalent. Return #f if the inferior could not be launched." (set-record-type-printer! <inferior-object> write-inferior-object) -(define (read-inferior-response inferior) +(define (read-repl-response port) + "Read a (guix repl) response from PORT and return it as a Scheme object." (define sexp->object (match-lambda (('value value) @@ -191,12 +193,15 @@ equivalent. Return #f if the inferior could not be launched." (('non-self-quoting address string) (inferior-object address string)))) - (match (read (inferior-socket inferior)) + (match (read port) (('values objects ...) (apply values (map sexp->object objects))) (('exception key objects ...) (apply throw key (map sexp->object objects))))) +(define (read-inferior-response inferior) + (read-repl-response (inferior-socket inferior))) + (define (send-inferior-request exp inferior) (write exp (inferior-socket inferior)) (newline (inferior-socket inferior))) |