Configure more list properties based on expanded API
This commit is contained in:
parent
686bfc7e24
commit
c65cd8ea8e
@ -1,7 +1,17 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
"""
|
||||
Update Mailman 2 lists via a json API of the form {"LIST": ["ADDRESS", ...]}
|
||||
Update Mailman 2 lists via a json API of the form:
|
||||
{
|
||||
"LIST": {
|
||||
"real_name": "REAL_NAME",
|
||||
"moderator": ["ADDRESS", ...],
|
||||
"subject_prefix": "PREFIX",
|
||||
"reply_to_address": "REPLY_TO_ADDRESS",
|
||||
"members": ["ADDRESS", ...]
|
||||
},
|
||||
...
|
||||
}
|
||||
"""
|
||||
|
||||
import argparse
|
||||
@ -50,13 +60,22 @@ class ListManager:
|
||||
],
|
||||
)
|
||||
|
||||
def config_list(self):
|
||||
def config_list(
|
||||
self,
|
||||
real_name: str,
|
||||
moderator: list[str],
|
||||
subject_prefix: str,
|
||||
reply_to_address: str,
|
||||
):
|
||||
config_changes = "\n".join(
|
||||
[
|
||||
# TODO: set real_name, moderator, subject prefix, and reply-to address
|
||||
"real_name = " + repr(real_name),
|
||||
"moderator = " + repr(moderator),
|
||||
"subject_prefix = " + repr(subject_prefix),
|
||||
"from_is_list = 1",
|
||||
"anonymous_list = 1",
|
||||
"first_strip_reply_to = 1",
|
||||
"reply_to_address = " + repr(reply_to_address),
|
||||
# Use explicit address for Reply-To
|
||||
"reply_goes_to_list = 2",
|
||||
# quiet member management
|
||||
@ -124,7 +143,7 @@ def main(
|
||||
capture_output=True,
|
||||
check=True,
|
||||
).stdout.split("\n")
|
||||
for name, members in expected_lists.items():
|
||||
for name, props in expected_lists.items():
|
||||
list_name = name + list_suffix
|
||||
list_manager = ListManager(mailman_bin, list_name, dry_run)
|
||||
if list_name not in existing_lists:
|
||||
@ -135,8 +154,13 @@ def main(
|
||||
list_manager.newlist(urlhost, admin)
|
||||
|
||||
print(f"Configuring/syncing {list_name}...")
|
||||
list_manager.config_list()
|
||||
list_manager.sync_members(members)
|
||||
list_manager.config_list(
|
||||
props["real_name"],
|
||||
props["moderator"],
|
||||
props["subject_prefix"],
|
||||
props["reply_to_address"],
|
||||
)
|
||||
list_manager.sync_members(props["members"])
|
||||
|
||||
|
||||
def parse_arguments():
|
||||
|
Loading…
Reference in New Issue
Block a user