From 603ffa53bb0b52adb3dfd01e253e7b1be757c989 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Fri, 10 Mar 2023 22:43:53 +0100 Subject: [PATCH] Implement loading raw members index. --- brmsaptool.scm | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/brmsaptool.scm b/brmsaptool.scm index 8727c8b..40dfc7b 100644 --- a/brmsaptool.scm +++ b/brmsaptool.scm @@ -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))