diff options
| author | Artyom V. Poptsov <poptsov.artyom@gmail.com> | 2018-03-05 05:11:45 +0300 |
|---|---|---|
| committer | Artyom V. Poptsov <poptsov.artyom@gmail.com> | 2018-03-05 05:11:45 +0300 |
| commit | e24401f1ef56b1f3d7ef847c54fb0c2fe9cf3cf8 (patch) | |
| tree | 13fb921319587dad3fdae30a94b69c1a94e8d3ee /modules/ssh/dist/node.scm | |
| parent | auth.scm: Add procedures for interacting w/ an OpenSSH agent (diff) | |
| download | guile-ssh-e24401f1ef56b1f3d7ef847c54fb0c2fe9cf3cf8.tar.gz | |
node.scm (node-run-server): Check return code
* modules/ssh/dist/node.scm (node-run-server): Check return code of the
executed command, throw a 'node-error' on a non-zero code.
* AUTHORS, NEWS, THANKS: Update.
Diffstat (limited to '')
| -rw-r--r-- | modules/ssh/dist/node.scm | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/modules/ssh/dist/node.scm b/modules/ssh/dist/node.scm index 09ce794..9ff3750 100644 --- a/modules/ssh/dist/node.scm +++ b/modules/ssh/dist/node.scm @@ -349,13 +349,16 @@ listens on an expected port, return #f otherwise." (guile-up-and-running?)))))))) +(define %guile-listen-command "nohup guile --listen=~a 0<&- &>/dev/null") + (define (node-run-server node) - "Run a RREPL server on a NODE." - (open-remote-input-pipe (node-session node) - (format #f "nohup guile --listen=~a 0<&- &>/dev/null" - (node-repl-port node))) - (while (not (node-server-running? node)) - (usleep 100))) + "Run a RREPL server on a NODE. Throw 'node-error on an error." + (let* ((cmd (format #f %guile-listen-command (node-repl-port node))) + (channel (open-remote-input-pipe (node-session node) cmd))) + (when (not (zero? (channel-get-exit-status channel))) + (node-error "node-run-server: Could not execute command" cmd)) + (while (not (node-server-running? node)) + (usleep 100)))) (define (node-stop-server node) "Stop a RREPL server on a NODE." |
