aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2021-03-04 12:08:32 -0700
committerSean Whitton <spwhitton@spwhitton.name>2021-03-04 14:10:15 -0700
commite7b6e61297739e6da628fef474601ef6cdef3806 (patch)
tree63e234022f8a9362dbffcfb9a265ba67f1cbd372
parent47bb12a0b37fd10b3c00a8ced942d29eb10f97d6 (diff)
downloadconsfigurator-e7b6e61297739e6da628fef474601ef6cdef3806.tar.gz
CHROOT.FORK: data TODOs
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
-rw-r--r--src/connection/chroot/fork.lisp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/connection/chroot/fork.lisp b/src/connection/chroot/fork.lisp
index bea6b10..db50229 100644
--- a/src/connection/chroot/fork.lisp
+++ b/src/connection/chroot/fork.lisp
@@ -38,6 +38,7 @@
(unless (lisp-connection-p)
(error "Forking into a chroot requires a Lisp-type connection"))
#-(or sbcl) (error "Don't know how to safely fork() in this Lisp")
+ ;; TODO copy required prerequisite data into the chroot
(mapc #'force-output
(list *standard-output* *error-output* *debug-io* *terminal-io*))
(let ((child (fork)))
@@ -48,6 +49,11 @@
(0
(handler-case
(progn
+ ;; TODO either (reset-data-sources), or bind a restart to ignore
+ ;; data source errors, as they may or may not be available inside
+ ;; the chroot, depending on whether the data source code needs to
+ ;; read files outside of the chroot or already has the data
+ ;; cached, a socket open etc.
(mapc #'clear-input
(list *standard-input* *debug-io* *terminal-io*))
(unless (zerop (chroot into))