Members directory reading.

This commit is contained in:
Dominik Pantůček 2023-03-15 11:51:49 +01:00
parent 8803c11f5e
commit 83b27f4de4
2 changed files with 30 additions and 3 deletions

View file

@ -62,4 +62,5 @@
(-mfkq () "Member-File invalid Key Quiet" (*member-file-check-syntax* 'quiet)) (-mfkq () "Member-File invalid Key Quiet" (*member-file-check-syntax* 'quiet))
(-mfec (n) "Member-File parser Error Context (lines)" (*member-file-context* (string->number n)))) (-mfec (n) "Member-File parser Error Context (lines)" (*member-file-context* (string->number n))))
(load-member-file "members/joe") (load-members "members")

View file

@ -34,9 +34,35 @@
(import scheme (import scheme
(chicken base) (chicken base)
testing) (chicken pathname)
(chicken file posix)
(chicken file)
testing
dictionary)
(define (load-members) ;; Gets all files and symbolic links from given directory. The
;; symbolic links are represented by cons cells with car being the
;; name and cdr the link target.
(define (get-files+symlinks dn)
(let loop ((fns (directory dn))
(rs '()))
(if (null? fns)
rs
(let* ((fn (car fns))
(ffn (make-pathname dn fn)))
(loop (cdr fns)
(if (symbolic-link? ffn)
(cons (cons fn (read-symbolic-link ffn)) rs)
(if (regular-file? ffn)
(cons fn rs)
rs)))))))
(define (load-members dn)
;; get the directory contents
(print (get-files+symlinks dn))
;; filter all ids
;; resolve links (it might be unknown!)
;; load member files
1) 1)
(define (members-base-tests!) (define (members-base-tests!)