diff --git a/src/mailman.scm b/src/mailman.scm index db10508..6a47da8 100644 --- a/src/mailman.scm +++ b/src/mailman.scm @@ -29,8 +29,10 @@ mailman ( *mailman-bin* - list-mailman-lists - list-mailman-list-members + load-mailman-lists + find-mailman-list + mailman-list-name + mailman-list-members ) (import scheme @@ -62,4 +64,25 @@ (define (list-mailman-list-members lst) (get-mailman-output-lines "list_members" lst)) + ;; Creates a representation of basic mailman list information + (define (make-mailman-list name members) + (cons name + members)) + + ;; Simple accessors + (define mailman-list-name car) + (define mailman-list-members cdr) + + ;; Loads all lists and members + (define (load-mailman-lists) + (map + (lambda (name) + (make-mailman-list name + (list-mailman-list-members name))) + (list-mailman-lists))) + + ;; List of lists, returns the whole list record (including name) + (define (find-mailman-list lsts name) + (assoc name lsts)) + )