From c4f81dacbe16249571eeb64e52f946d706658e30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Mon, 26 Jun 2023 21:32:13 +0200 Subject: [PATCH] Delete destroyed members generated files. --- src/export-web-static.scm | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/export-web-static.scm b/src/export-web-static.scm index 23f390a..ce06129 100644 --- a/src/export-web-static.scm +++ b/src/export-web-static.scm @@ -36,6 +36,7 @@ (chicken format) (chicken pathname) (chicken string) + (chicken file) brmember util-dir mbase @@ -159,11 +160,25 @@ (lambda () (print-html-member mr))))) + ;; Removes all generated files which do not belong to any member + (define (clean-members-files mb dir) + (let loop ((fns (directory dir))) + (when (not (null? fns)) + (let* ((fn (car fns)) + (utl (string-split fn ".")) + (username (car utl)) + (mr (find-member-by-nick mb username))) + (when (or (not mr) + (brmember-destroyed? mr)) + (delete-file (make-pathname dir fn))) + (loop (cdr fns)))))) + ;; Generates all members in given directory (define (gen-html-members mb dir) (ensure-directory dir) (with-mbase-progress% mb dir mr - (gen-html-member mr dir))) + (gen-html-member mr dir)) + (clean-members-files mb dir)) )