Implement loading raw members index.

This commit is contained in:
Dominik Pantůček 2023-03-10 22:43:53 +01:00
parent 325aca8454
commit 603ffa53bb

View file

@ -21,9 +21,16 @@
;; CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
;;
(import (chicken condition)
(chicken process-context)
(chicken file)
(chicken file posix))
(chicken pathname)
(chicken file posix)
(chicken process-context))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Static default configuration
(define *members-directory* "members")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Testing
@ -101,15 +108,21 @@
(print " ok."))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Members index
(define *members-directory* "members")
(define (displayln . x)
(apply display x)
(newline))
(define (load-members)
(directory *members-directory*))
(define (load-members-raw-index . dn)
(let ((dn (if (null? dn) *members-directory* (car dn))))
(let loop ((fns (directory dn))
(rs '()))
(if (null? fns)
rs
(let* ((fn (car fns))
(ffn (make-pathname dn fn))
(sl (if (symbolic-link? ffn) (read-symbolic-link ffn) #f)))
(loop (cdr fns)
(if sl
(cons (cons fn sl) rs)
rs)))))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Run everything
@ -125,4 +138,4 @@
(newline)
;; Perform requested action
(displayln (load-members))
(print (load-members-raw-index))