-Original Message-
On Behalf Of Syn, Joonho
Sent: Friday, October 15, 2010 7:53 PM
To: mailman-users@python.org
Subject: [Mailman-Users] one line command to change
generic_nonmember_action
I'm writing a simplified mailman dashboard page for my
company's internal use and one of the functions we want is to
be able to toggle the generic_nonmember_action for any given
list. Has anyone out there devised a one line command which
will allow this?
Hi,
I'm not sure if there is a direct command that can do this but I've
been doing something similar lately. I had a setup of 20+ mailing lists
which had to be identical in a specialised configuration. Doing that by
the web interface filled me with dread so I started looking around and
found the mailman utility 'bin/config_list'.
This brilliant (imnsho!) utility allows you to either dump out a list's
configuration in plain text or read in a list's configuration, again in
plain text.
Let's see you have a list called SomeList. You can dump out the entire
configuration (not the members list, just the list's functional
settings) by typing:
cd ~mailman
bin/config_list -o - SomeList
This will dump to screen ( -o - ) the configuration of SomeList.
It's just a minor logical step to do
bin/config_list -o /usr/tmp/somelist-conf.txt SomeList
Which dumps the config into a file /usr/tmp/somelist-conf.txt
If you were to look at that file you'd find a section like this:
==
# When a post from a non-member is received, the message's sender is
# matched against the list of explicitly a
# href=?VARHELP=privacy/sender/accept_these_nonmembers accepted,
# held, a href=?VARHELP=privacy/sender/reject_these_nonmembers
# rejected (bounced), and a
# href=?VARHELP=privacy/sender/discard_these_nonmembers discarded
# addresses. If no match is found, then this action is taken.
#
# legal values are:
#0 = Accept
#1 = Hold
#2 = Reject
#3 = Discard
generic_nonmember_action = 1
=
You could either replace the value at the end of the line, or just swap
in a whole new line.
Then save the text file and read the configuration BACK to the list:
bin/config_list -i /usr/tmp/somelist-conf.txt SomeList
Note the change from '-o' (output) to '-i' (input).
It would be easily possible to pipe these commands together, maybe using
sed as the output=input parser.
So something like,
bin/config_list -o - SomeList | /usr/bin/sed -f swapscript - |
bin/config_list -i - SomeList
Where 'swapscript' is a simple script to detect the
generic_nonmember_action = 1 line and change it as you want.
Of course there's probably a simpler/better way of doing this but it
should work.
Regards,
S Watkins
---
Steff Watkins Natural History Museum, Cromwell
Road, London, SW7 5BD
Systems programmer Email: s.watk...@nhm.ac.uk
Systems TeamPhone: +44 (0)20 7942 6000 opt 2
Many were increasingly of the opinion that they'd all made a big mistake
in coming down from the trees in the first place. And some said that
even the trees had been a bad move, and that no one should ever have
left the oceans. - HHGTTG
--
Mailman-Users mailing list Mailman-Users@python.org
http://mail.python.org/mailman/listinfo/mailman-users
Mailman FAQ: http://wiki.list.org/x/AgA3
Security Policy: http://wiki.list.org/x/QIA9
Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/
Unsubscribe:
http://mail.python.org/mailman/options/mailman-users/archive%40jab.org