aboutsummaryrefslogtreecommitdiff
path: root/src/connection/debian-sbcl.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'src/connection/debian-sbcl.lisp')
-rw-r--r--src/connection/debian-sbcl.lisp19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/connection/debian-sbcl.lisp b/src/connection/debian-sbcl.lisp
index 596b85a..cee6a07 100644
--- a/src/connection/debian-sbcl.lisp
+++ b/src/connection/debian-sbcl.lisp
@@ -21,11 +21,16 @@
(mrun "which sbcl >/dev/null 2>&1 || apt-get -y install sbcl")
(request-lisp-systems)
(upload-all-prerequisite-data)
- (princ "Handing over to remote Lisp ...")
- (terpri)
- (format t "~{ ~A~%~}"
- (runlines :input (deployment-handover-program remaining)
- "sbcl" "--noinform" "--noprint"
- "--disable-debugger"
- "--no-sysinit" "--no-user-init"))
+ (princ "Waiting for remote Lisp to exit, this may take some time ... ")
+ (let ((program (deployment-handover-program remaining)))
+ (multiple-value-bind (out err exit)
+ (run :may-fail :input program
+ "sbcl" "--noinform" "--noprint"
+ "--disable-debugger"
+ "--no-sysinit" "--no-user-init")
+ (format t "done.")
+ (if (= 0 exit)
+ (format t " Output was:~%~{ ~A~%~}" (lines out))
+ (error "~%~%Remote Lisp failed; we sent~%~%~A~%~%and stderr was:~%~A"
+ program err))))
nil)