diff --git a/src/Makefile b/src/Makefile index 008c961..aec56a8 100644 --- a/src/Makefile +++ b/src/Makefile @@ -234,7 +234,7 @@ members-payments.import.scm: $(MEMBERS-PAYMENTS-SOURCES) WEB-STATIC-SOURCES=web-static.scm member-record.import.scm \ configuration.import.scm members-payments.import.scm \ members-base.import.scm util-io.import.scm \ - util-list.import.scm + util-list.import.scm progress.import.scm web-static.o: web-static.import.scm web-static.import.scm: $(WEB-STATIC-SOURCES) diff --git a/src/web-static.scm b/src/web-static.scm index c68a676..d180b81 100644 --- a/src/web-static.scm +++ b/src/web-static.scm @@ -45,7 +45,8 @@ configuration members-payments members-base - util-io) + util-io + progress) ;; Generate all the files in specified (default current) directory. (define (gen-web-static-member mr . dirs) @@ -87,9 +88,21 @@ (error 'gen-web-static "Directory is a file:" dir)) (when (not (directory-exists? dir)) (create-directory dir)) - (let loop ((mb (members-base-members mb))) - (when (not (null? mb)) - (gen-web-static-member (car mb) dir) - (loop (cdr mb))))) + (let* ((members-list (members-base-members mb)) + (mlen0 (length members-list)) + (mlen (if (> mlen0 0) + mlen0 + 1))) + (with-progress% + #t dir + (let loop ((mb members-list) + (i 0)) + (if (not (null? mb)) + (let () + (progress%-advance (/ i mlen)) + (gen-web-static-member (car mb) dir) + (loop (cdr mb) + (add1 i)))) + (progress%-advance 1))))) )