diff --git a/src/Makefile b/src/Makefile index 24d03bb..5cdcf32 100644 --- a/src/Makefile +++ b/src/Makefile @@ -56,7 +56,7 @@ HACKERBASE-OBJS=hackerbase.o testing.o listing.o cal-month.o \ template-list-expander.o box-drawing.o util-list.o \ export-web-static.o util-dir.o dokuwiki.o racket-kwargs.o \ duck.o util-bst.o util-bst-bdict.o util-bst-ldict.o \ - util-bst-lset.o mailman2.o + util-bst-lset.o mailman2.o mailman-common.o GENDOC-SOURCES=gendoc.scm duck-extract.import.scm \ util-time.import.scm util-csv.import.scm util-git.import.scm \ @@ -258,9 +258,9 @@ ENVIRONMENT-SOURCES=environment.scm ansi.import.scm environment.o: environment.import.scm environment.import.scm: $(ENVIRONMENT-SOURCES) -MAILMAN2-SOURCES=mailman2.scm progress.import.scm \ +MAILMAN2-SOURCES=mailman2.scm progress.import.scm \ util-bst-lset.import.scm util-io.import.scm \ - util-list.import.scm + util-list.import.scm mailman-common.import.scm mailman2.o: mailman2.import.scm mailman2.import.scm: $(MAILMAN2-SOURCES) @@ -533,3 +533,8 @@ MAILMAN-SOURCES=mailman.scm mailman2.import.scm mailman.o: mailman.import.scm mailman.import.scm: $(MAILMAN-SOURCES) + +MAILMAN-COMMON-SOURCES: mailman-common.scm + +mailman-common.o: mailman-common.import.scm +mailman-common.import.scm: $(MAILMAN-COMMON-SOURCES) diff --git a/src/mailman-common.scm b/src/mailman-common.scm new file mode 100644 index 0000000..0ca3c71 --- /dev/null +++ b/src/mailman-common.scm @@ -0,0 +1,41 @@ +;; +;; mailman-common.scm +;; +;; Mailman management interface +;; +;; ISC License +;; +;; Copyright 2023 Brmlab, z.s. +;; Dominik Pantůček +;; +;; Permission to use, copy, modify, and/or distribute this software +;; for any purpose with or without fee is hereby granted, provided +;; that the above copyright notice and this permission notice appear +;; in all copies. +;; +;; THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL +;; WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED +;; WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE +;; AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +;; CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +;; OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +;; NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +;; CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +;; + +(declare (unit mailman-common)) + +(module + mailman-common + ( + mailman-list-name + mailman-list-members + ) + + (import scheme) + + ;; Simple accessors + (define mailman-list-name car) + (define mailman-list-members cdr) + + ) diff --git a/src/mailman.scm b/src/mailman.scm index 342f70f..3e7dd5a 100644 --- a/src/mailman.scm +++ b/src/mailman.scm @@ -34,7 +34,8 @@ (import scheme (chicken base) (chicken module) - mailman2) + mailman2 + mailman-common) (define *mailman-version* (make-parameter 2)) diff --git a/src/mailman2.scm b/src/mailman2.scm index c0955df..27e843e 100644 --- a/src/mailman2.scm +++ b/src/mailman2.scm @@ -35,9 +35,6 @@ load-mailman2-list load-mailman2-lists - mailman-list-name - mailman-list-members - email-in-mailman-list? add-email-to-mailman-list @@ -60,7 +57,8 @@ util-list progress util-bst-lset - util-io) + util-io + mailman-common) ;; Where does the mailman binaries reside (define *mailman2-bin* (make-parameter "/usr/lib/mailman/bin")) @@ -99,10 +97,6 @@ (cons name members)) - ;; Simple accessors - (define mailman-list-name car) - (define mailman-list-members cdr) - ;; Loads a single mailman list as mailman structure, if ;; unsuccessfull, returns only a list with ML name and no member ;; emails.