Adding member to mailinglist.
This commit is contained in:
parent
4e0d8108e6
commit
38ab4cb5da
2 changed files with 32 additions and 4 deletions
|
@ -111,7 +111,8 @@
|
|||
(define (find-mailman-list lsts name)
|
||||
(assoc name lsts))
|
||||
|
||||
(define-mailman-proc add-email-to-mailman-list add-email-to-mailman2-list)
|
||||
(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)
|
||||
|
||||
;; Ensures given email is in given ML
|
||||
|
|
|
@ -30,6 +30,8 @@
|
|||
(
|
||||
list-mailman3-lists
|
||||
list-mailman3-list-members
|
||||
|
||||
add-email-to-mailman3-list
|
||||
)
|
||||
|
||||
(import scheme
|
||||
|
@ -41,17 +43,30 @@
|
|||
util-io
|
||||
util-list)
|
||||
|
||||
;; Just a convenient converter
|
||||
(define (mailman3:cmd+args0)
|
||||
(let ((cmd+args0 (string-split (*mailman3-bin*) " ")))
|
||||
(values (car cmd+args0)
|
||||
(cdr cmd+args0))))
|
||||
|
||||
;; Runs the mailman3 binary with any arguments and returns the lines
|
||||
;; produced on stdout
|
||||
(define (get-mailman3-output-lines . args1)
|
||||
(let* ((cmd+args0 (string-split (*mailman3-bin*) " "))
|
||||
(cmd (car cmd+args0))
|
||||
(args0 (cdr cmd+args0)))
|
||||
(let-values (((cmd args0) (mailman3:cmd+args0)))
|
||||
(apply
|
||||
get-process-output-lines
|
||||
cmd
|
||||
(append args0 args1))))
|
||||
|
||||
;; Sends all lines to the process
|
||||
(define (mailman3-send/recv args1 . lines)
|
||||
(let-values (((cmd args0) (mailman3:cmd+args0)))
|
||||
(apply
|
||||
process-send/recv
|
||||
cmd
|
||||
(append args0 args1)
|
||||
lines)))
|
||||
|
||||
;; Returns the list of available lists
|
||||
(define (list-mailman3-lists)
|
||||
(filter
|
||||
|
@ -71,4 +86,16 @@
|
|||
"-e")
|
||||
string-ci<?))
|
||||
|
||||
;; Adds given email
|
||||
(define (add-email-to-mailman3-list lst email)
|
||||
(print "Add " email " to " lst ".")
|
||||
(let ((result
|
||||
(mailman3-send/recv
|
||||
(list "addmembers" "-" (format "~A@brmlab.cz" lst))
|
||||
email)))
|
||||
(let loop ((lines result))
|
||||
(when (not (null? lines))
|
||||
(print " | " (car lines))
|
||||
(loop (cdr lines))))))
|
||||
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue