Make load-members create more complex structure.
This commit is contained in:
parent
e25a75ab27
commit
78164ecafe
1 changed files with 23 additions and 20 deletions
|
@ -65,26 +65,29 @@
|
|||
(define (load-members dn . opts)
|
||||
(let ((progress? (and (not (null? opts))
|
||||
(car opts))))
|
||||
(with-progress%
|
||||
progress? "members"
|
||||
(let* ((fss (load-members-dir dn))
|
||||
(tot (sub1 (length (dict-keys fss))))
|
||||
(mb0 (dict-map
|
||||
(lambda (symfn symlinks prg)
|
||||
(progress%-advance (/ prg tot))
|
||||
(members-dir-load-member dn
|
||||
symfn
|
||||
symlinks))
|
||||
fss))
|
||||
(mb1 (dict-reduce (make-dict)
|
||||
(lambda (acc symfn mr)
|
||||
(dict-set acc (dict-ref mr 'id) mr))
|
||||
mb0))
|
||||
(mb (dict-reduce '()
|
||||
(lambda (acc id mr)
|
||||
(cons mr acc))
|
||||
mb1)))
|
||||
mb))))
|
||||
(make-dict
|
||||
`((members
|
||||
.
|
||||
,(with-progress%
|
||||
progress? "members"
|
||||
(let* ((fss (load-members-dir dn))
|
||||
(tot (sub1 (length (dict-keys fss))))
|
||||
(mb0 (dict-map
|
||||
(lambda (symfn symlinks prg)
|
||||
(progress%-advance (/ prg tot))
|
||||
(members-dir-load-member dn
|
||||
symfn
|
||||
symlinks))
|
||||
fss))
|
||||
(mb1 (dict-reduce (make-dict)
|
||||
(lambda (acc symfn mr)
|
||||
(dict-set acc (dict-ref mr 'id) mr))
|
||||
mb0))
|
||||
(mb (dict-reduce '()
|
||||
(lambda (acc id mr)
|
||||
(cons mr acc))
|
||||
mb1)))
|
||||
mb)))))))
|
||||
|
||||
;; Gets member based by generic predicate
|
||||
(define (find-member-by-predicate mb pred)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue