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)))))) + )