From 8e661aae1c61e453798c5f3e7d862acb2fef7da6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Thu, 6 Apr 2023 21:08:12 +0200 Subject: [PATCH] Mailman utility functions. --- src/mailman.scm | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/mailman.scm b/src/mailman.scm index 67db09e..ad081a0 100644 --- a/src/mailman.scm +++ b/src/mailman.scm @@ -129,17 +129,23 @@ (sprintf "<<<\"~A\"" email)))) (print result))) + ;; Removes given email from given listname (define (remove-email-from-mailman-list listname email) - #f) + (let ((result + (get-mailman-output-lines + "remove_members" (car listname) + (sprintf "\"~A\"" email)))) + (print result))) ;; Ensures given email is in given ML (define (mailman-ensure-member ml email) - - #f) + (when (not (email-in-mailman-list? ml email)) + (add-email-to-mailman-list (mailman-list-name ml) email))) ;; Makes sure given member is removed (define (mailman-ensure-not-member ml email) - #f) + (when (email-in-mailman-list? ml email) + (remove-email-from-mailman-list (mailman-list-name ml) email))) ;; Ensures given ML subscribers are exactly what is in emails list (define (mailman-sync-members ml emails)