From 54497b8bc84789f3a8b1b2fb69e7869337583457 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Sat, 16 Sep 2023 08:03:30 +0200 Subject: [PATCH] Finish mailman3 driver. --- src/mailman.scm | 3 ++- src/mailman3.scm | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/mailman.scm b/src/mailman.scm index 6854afb..29bd842 100644 --- a/src/mailman.scm +++ b/src/mailman.scm @@ -113,7 +113,8 @@ (define-mailman-proc add-email-to-mailman-list add-email-to-mailman2-list add-email-to-mailman3-list) - (define-mailman-proc remove-email-from-mailman-list remove-email-from-mailman2-list) + (define-mailman-proc remove-email-from-mailman-list + remove-email-from-mailman2-list remove-email-from-mailman3-list) ;; Ensures given email is in given ML (define (mailman-ensure-member ml email) diff --git a/src/mailman3.scm b/src/mailman3.scm index 7c0ffe3..73871ad 100644 --- a/src/mailman3.scm +++ b/src/mailman3.scm @@ -32,6 +32,7 @@ list-mailman3-list-members add-email-to-mailman3-list + remove-email-from-mailman3-list ) (import scheme @@ -98,4 +99,17 @@ (print " | " (car lines)) (loop (cdr lines)))))) + ;; Removes given email from given listname + (define (remove-email-from-mailman3-list lst email) + (print "Remove " email " from " lst ".") + (let ((result + (get-mailman3-output-lines + "delmembers" + "-l" (format "~A@brmlab.cz" lst) + "-m" email))) + (let loop ((lines result)) + (when (not (null? lines)) + (print " | " (car lines)) + (loop (cdr lines)))))) + )