Remove egregious lack of support for reading directory contents in filesystem driver
This commit is contained in:
parent
73e0ba315a
commit
4ee234f118
|
@ -21,7 +21,7 @@
|
||||||
(track-file name reader-proc))))
|
(track-file name reader-proc))))
|
||||||
|
|
||||||
(define (read-file name reader-proc)
|
(define (read-file name reader-proc)
|
||||||
(and (file-exists? name)
|
(and (or (file-exists? name) (directory-exists? name))
|
||||||
(reader-proc name)))
|
(reader-proc name)))
|
||||||
|
|
||||||
(define (track-file name reader-proc)
|
(define (track-file name reader-proc)
|
||||||
|
@ -44,7 +44,7 @@
|
||||||
;; (log-info "track-file-changes ~v: ~v" name msg)
|
;; (log-info "track-file-changes ~v: ~v" name msg)
|
||||||
(match msg
|
(match msg
|
||||||
['quit (void)])))
|
['quit (void)])))
|
||||||
(if (file-exists? name) ;; TODO: TOCTTOU :-(
|
(if (or (file-exists? name) (directory-exists? name)) ;; TODO: TOCTTOU :-(
|
||||||
(handle-evt (filesystem-change-evt name)
|
(handle-evt (filesystem-change-evt name)
|
||||||
(lambda (_dummy)
|
(lambda (_dummy)
|
||||||
;; (log-info "track-file-changes ~v: changed" name)
|
;; (log-info "track-file-changes ~v: changed" name)
|
||||||
|
|
|
@ -18,4 +18,11 @@
|
||||||
(actor #:name (list 'monitor name)
|
(actor #:name (list 'monitor name)
|
||||||
(stop-when (message (list "close" name)))
|
(stop-when (message (list "close" name)))
|
||||||
(on (asserted (file-content name file->bytes $bs))
|
(on (asserted (file-content name file->bytes $bs))
|
||||||
(log-info "~a: ~v" name bs)))))
|
(log-info "~a: ~v" name bs))))
|
||||||
|
|
||||||
|
;; The driver can track directory "contents" just as well as files.
|
||||||
|
(on (message (list "opendir" $name))
|
||||||
|
(actor #:name (list 'monitor name)
|
||||||
|
(stop-when (message (list "close" name)))
|
||||||
|
(on (asserted (file-content name directory-list $files))
|
||||||
|
(log-info "~a: ~v" name files)))))
|
||||||
|
|
Loading…
Reference in New Issue