summaryrefslogtreecommitdiff
path: root/haunt
diff options
context:
space:
mode:
authorDavid Thompson <dthompson2@worcester.edu>2022-02-06 12:16:52 -0500
committerDavid Thompson <dthompson2@worcester.edu>2022-02-06 12:16:52 -0500
commitab0b722b0719e3370a21359e4d511af9c4f14e60 (patch)
tree5f98f6cb1551b2711d2336ad4317af055c9488fa /haunt
parent3e406cbef274ad83c44674a8ee404684eb16bdbe (diff)
Do not compile or load inotify module when inotify is not available.
Diffstat (limited to 'haunt')
-rw-r--r--haunt/ui/serve.scm12
1 files changed, 11 insertions, 1 deletions
diff --git a/haunt/ui/serve.scm b/haunt/ui/serve.scm
index 62fbc6b..8511d87 100644
--- a/haunt/ui/serve.scm
+++ b/haunt/ui/serve.scm
@@ -30,7 +30,6 @@
#:use-module (ice-9 ftw)
#:use-module (ice-9 threads)
#:use-module (haunt config)
- #:use-module (haunt inotify)
#:use-module (haunt serve web-server)
#:use-module (haunt site)
#:use-module (haunt ui)
@@ -90,6 +89,17 @@ Start an HTTP server for the current site.~%")
;; TODO: Detect new directories and watch them, too.
(define (watch/linux config-file check-dir? check-file?)
+ ;; Lazy load inotify procedures. Requiring the module in the
+ ;; define-module definition would cause crashes on non-Linux
+ ;; platforms where the FFI cannot bind to inotify functions.
+ (define make-inotify (@ (haunt inotify) make-inotify))
+ (define inotify-add-watch! (@ (haunt inotify) inotify-add-watch!))
+ (define inotify-pending-events? (@ (haunt inotify) inotify-pending-events?))
+ (define inotify-read-event (@ (haunt inotify) inotify-read-event))
+ (define inotify-watch-file-name (@ (haunt inotify) inotify-watch-file-name))
+ (define inotify-event-watch (@ (haunt inotify) inotify-event-watch))
+ (define inotify-event-file-name (@ (haunt inotify) inotify-event-file-name))
+ (define inotify-event-type (@ (haunt inotify) inotify-event-type))
(let ((inotify (make-inotify)))
(define (no-op name stat result) result)
(define (watch-directory name stat result)