Skip dokuwiki checks if no dokuwiki is loaded.

This commit is contained in:
Dominik Pantůček 2023-06-26 21:48:16 +02:00
parent c4f81dacbe
commit 697dcd24db
2 changed files with 39 additions and 31 deletions

View file

@ -314,32 +314,38 @@
;; Adds dokuwiki information to all users found, returns new mbase ;; Adds dokuwiki information to all users found, returns new mbase
;; and list of remaining users. ;; and list of remaining users.
(define (mbase-merge-dokuwiki mb dw) (define (mbase-merge-dokuwiki mb dw)
(let loop ((dw dw) (if (null? dw)
(mb mb) (values (mbase-update mb
(rem '())) (lambda (mr) #t)
(if (null? dw) (lambda (mr)
(values mb rem) (brmember-set mr #:dokuwiki #t)))
(let* ((row (car dw)) dw)
(username (car row)) (let loop ((dw dw)
(mr (find-member-by-nick mb username)) (mb mb)
(groups (list-ref row 3)) (rem '()))
(email (list-ref row 2))) (if (null? dw)
(if mr (values mb rem)
(let ((mid (brmember-id mr))) (let* ((row (car dw))
(loop (cdr dw) (username (car row))
(mbase-update mb (mr (find-member-by-nick mb username))
(lambda (mr) (groups (list-ref row 3))
(eq? (brmember-id mr) mid)) (email (list-ref row 2)))
(lambda (mr) (if mr
(let ((dws (ldict-ref mr 'dokuwiki (make-ldict)))) (let ((mid (brmember-id mr)))
(brmember-set mr #:dokuwiki (loop (cdr dw)
(ldict-set (mbase-update mb
(ldict-set dws 'groups groups) (lambda (mr)
'email email))))) (eq? (brmember-id mr) mid))
rem)) (lambda (mr)
(loop (cdr dw) (let ((dws (ldict-ref mr 'dokuwiki (make-ldict))))
mb (brmember-set mr #:dokuwiki
(cons row rem))))))) (ldict-set
(ldict-set dws 'groups groups)
'email email)))))
rem))
(loop (cdr dw)
mb
(cons row rem))))))))
;; Simple syntax wrapper ;; Simple syntax wrapper
(define-syntax with-mbase-progress% (define-syntax with-mbase-progress%

View file

@ -136,11 +136,13 @@
(mailman (list (list "Mailing Lists" (mailman (list (list "Mailing Lists"
(string-intersperse (brmember-mailman mr) "\n")))) (string-intersperse (brmember-mailman mr) "\n"))))
(dokuwiki (if (ldict-contains? mr 'dokuwiki) (dokuwiki (if (ldict-contains? mr 'dokuwiki)
(list (list "DokuWiki" (if (eq? (ldict-ref mr 'dokuwiki) #t)
(format "Groups: ~A\nEmail: ~A" (list #f)
(brmember-sub-ref mr 'dokuwiki 'groups) (list (list "DokuWiki"
(brmember-sub-ref mr 'dokuwiki 'email) (format "Groups: ~A\nEmail: ~A"
))) (brmember-sub-ref mr 'dokuwiki 'groups)
(brmember-sub-ref mr 'dokuwiki 'email)
))))
(list (list (ansi-string #:red "DokuWiki") (list (list (ansi-string #:red "DokuWiki")
(ansi-string #:red "---"))))) (ansi-string #:red "---")))))
(result (filter identity (append head body mailman dokuwiki)))) (result (filter identity (append head body mailman dokuwiki))))