aboutsummaryrefslogtreecommitdiff
path: root/src/data.lisp
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2021-03-01 14:46:36 -0700
committerSean Whitton <spwhitton@spwhitton.name>2021-03-01 14:47:27 -0700
commit5b83e1693cebb8c037da5cbbffac24b90c46caf4 (patch)
tree5652f221995031123f5a4cd7bbaabaaec44544de /src/data.lisp
parentbe2b15288d2d979345c3893c1fadd7650684fea5 (diff)
downloadconsfigurator-5b83e1693cebb8c037da5cbbffac24b90c46caf4.tar.gz
bind a variable to block trying to load ASDF systems in remote Lisps
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Diffstat (limited to 'src/data.lisp')
-rw-r--r--src/data.lisp17
1 files changed, 6 insertions, 11 deletions
diff --git a/src/data.lisp b/src/data.lisp
index 0b68cd9..550004e 100644
--- a/src/data.lisp
+++ b/src/data.lisp
@@ -370,23 +370,17 @@ achieved by sending the return value of this function into a REPL's stdin."
(missing-data-source
(lambda (c)
(declare (ignore c))
- (invoke-restart 'skip-data-source)))
- ;; we can skip missing components when our particular restart
- ;; is available because we've already uploaded everything
- ;; that was declared to be required
- (asdf/find-component:missing-component
- (lambda (c)
- (declare (ignore c))
- (let ((restart (find-restart 'continue-without-system)))
- (when restart (invoke-restart restart))))))
- ,@forms)))
+ (invoke-restart 'skip-data-source))))
+ (let ((*remote-lisp* t))
+ ,@forms))))
(let ((intern-forms
(loop for name in '("MISSING-DATA-SOURCE"
"SKIP-DATA-SOURCE"
- "CONTINUE-WITHOUT-SYSTEM")
+ "*REMOTE-LISP*")
collect
`(export (intern ,name (find-package "CONSFIGURATOR"))
(find-package "CONSFIGURATOR"))))
+ (proclamations `((proclaim '(special *remote-lisp*))))
(load-forms
(loop for system
in (slot-value (slot-value *host* 'propspec) 'systems)
@@ -405,6 +399,7 @@ achieved by sending the return value of this function into a REPL's stdin."
#'prin1-to-string
`((make-package "CONSFIGURATOR")
,@intern-forms
+ ,@proclamations
(define-condition missing-data-source (error) ())
(require "asdf")
(let ((*standard-output* *error-output*))