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)
|
(define (load-members dn . opts)
|
||||||
(let ((progress? (and (not (null? opts))
|
(let ((progress? (and (not (null? opts))
|
||||||
(car opts))))
|
(car opts))))
|
||||||
(with-progress%
|
(make-dict
|
||||||
progress? "members"
|
`((members
|
||||||
(let* ((fss (load-members-dir dn))
|
.
|
||||||
(tot (sub1 (length (dict-keys fss))))
|
,(with-progress%
|
||||||
(mb0 (dict-map
|
progress? "members"
|
||||||
(lambda (symfn symlinks prg)
|
(let* ((fss (load-members-dir dn))
|
||||||
(progress%-advance (/ prg tot))
|
(tot (sub1 (length (dict-keys fss))))
|
||||||
(members-dir-load-member dn
|
(mb0 (dict-map
|
||||||
symfn
|
(lambda (symfn symlinks prg)
|
||||||
symlinks))
|
(progress%-advance (/ prg tot))
|
||||||
fss))
|
(members-dir-load-member dn
|
||||||
(mb1 (dict-reduce (make-dict)
|
symfn
|
||||||
(lambda (acc symfn mr)
|
symlinks))
|
||||||
(dict-set acc (dict-ref mr 'id) mr))
|
fss))
|
||||||
mb0))
|
(mb1 (dict-reduce (make-dict)
|
||||||
(mb (dict-reduce '()
|
(lambda (acc symfn mr)
|
||||||
(lambda (acc id mr)
|
(dict-set acc (dict-ref mr 'id) mr))
|
||||||
(cons mr acc))
|
mb0))
|
||||||
mb1)))
|
(mb (dict-reduce '()
|
||||||
mb))))
|
(lambda (acc id mr)
|
||||||
|
(cons mr acc))
|
||||||
|
mb1)))
|
||||||
|
mb)))))))
|
||||||
|
|
||||||
;; Gets member based by generic predicate
|
;; Gets member based by generic predicate
|
||||||
(define (find-member-by-predicate mb pred)
|
(define (find-member-by-predicate mb pred)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue