diff --git a/src/Makefile b/src/Makefile index 5f7bb62..026334a 100644 --- a/src/Makefile +++ b/src/Makefile @@ -231,7 +231,7 @@ ENVIRONMENT-SOURCES=environment.scm ansi.import.scm environment.o: environment.import.scm environment.import.scm: $(ENVIRONMENT-SOURCES) -MAILMAN-SOURCES=mailman.scm utils.import.scm +MAILMAN-SOURCES=mailman.scm utils.import.scm progress.import.scm mailman.o: mailman.import.scm mailman.import.scm: $(MAILMAN-SOURCES) diff --git a/src/mailman.scm b/src/mailman.scm index 3a7875e..b40b77f 100644 --- a/src/mailman.scm +++ b/src/mailman.scm @@ -43,7 +43,8 @@ (chicken pathname) (chicken string) (chicken sort) - utils) + utils + progress) ;; Where does the mailman binaries reside (define *mailman-bin* (make-parameter "/usr/lib/mailman/bin")) @@ -88,9 +89,15 @@ ;; Loads all lists and members (define (load-mailman-lists) - (map - load-mailman-list - (list-mailman-lists))) + (with-progress% + #t "Mailman" + (let loop ((lsts (list-mailman-lists)) + (res '())) + (if (null? lsts) + res + (let ((mln (car lsts))) + (loop (cdr lsts) + (cons res (load-mailman-list mln)))))))) ;; List of lists, returns the whole list record (including name) (define (find-mailman-list lsts name)