withlist(8)



withlist(8)                 System Manager's Manual                withlist(8)

NAME
       withlist  -  General  framework  for interacting with a Mailman mailing
       list object.

SYNOPSIS
       withlist [options] listname [args ...]

       There are two ways to use this script:  interactively  or  programmati-
       cally.   Using  it  interactively  allows you to play with, examine and
       modify a MailList object from Python's interactive  interpreter.   When
       running  interactively,  a MailList object called `m' will be available
       in the global namespace.  It also loads the  class  MailList  into  the
       global namespace.

       Programmatically, you can write a function to operate on a MailList ob-
       ject, and this script will take care of the housekeeping (see below for
       examples).  In that case, the general usage syntax is:

OPTIONS
       -l, --lock
              Lock  the  list  when  opening.  Normally the list is opened un-
              locked (e.g. for read-only operations).  You can always lock the
              file after the fact by typing `m.Lock()'

              Note  that  if  you  use this option, you should explicitly call
              m.Save() before exiting, since the interpreter's clean up proce-
              dure  will not automatically save changes to the MailList object
              (but it will unlock the list).

       -i, --interactive
              Leaves you at an interactive prompt after all  other  processing
              is complete.  This is the default unless the -r option is given.

       -r [module.]callable, --run [module.]callable
              This  can  be  used to run a script with the opened MailList ob-
              ject.  This works by attempting to import module (which must al-
              ready be accessible on your sys.path), and then calling callable
              from the module.  callable can be a class  or  function;  it  is
              called with the MailList object as the first argument.  If addi-
              tional args are given on the command line, they  are  passed  as
              subsequent positional args to the callable.

              Note  that  module.  is optional; if it is omitted then a module
              with the name callable will be imported.

              The global variable `r' will be set to the results of this call.

       -a, --all
              This option only works with the -r option.  Use this if you want
              to execute the script on all mailing lists.  When you use -a you
              should not include a listname argument on the command line.  The
              variable `r' will be a list of all the results.

       -q, --quiet
              Suppress all status messages.

       -h, --help
              Print a small help text and exit.

EXAMPLES
       Here's  an example of how to use the -r option.  Say you have a file in
       the Mailman installation directory called `listaddr.py', with the  fol-
       lowing two functions:

         def listaddr(mlist):
             print mlist.GetListEmail()

         def requestaddr(mlist):
             print mlist.GetRequestEmail()

       Now,  from the command line you can print the list's posting address by
       running the following from the command line:

         % bin/withlist -r listaddr mylist
         Loading list: mylist (unlocked)
         Importing listaddr ...
         Running listaddr.listaddr() ...
         mylist@example.com

       And you can print the list's request address by running:

         % bin/withlist -r listaddr.requestaddr mylist
         Loading list: mylist (unlocked)
         Importing listaddr ...
         Running listaddr.requestaddr() ...
         mylist-request@example.com

       As another example, say you wanted to change the password for a partic-
       ular  user  on a particular list.  You could put the following function
       in a file called `changepw.py':

         from Mailman.Errors import NotAMemberError

         def changepw(mlist, addr, newpasswd):
             try:
                 mlist.setMemberPassword(addr, newpasswd)
                 mlist.Save()
             except NotAMemberError:
                 print 'No address matched:', addr

        and run this from the command line:
        % bin/withlist -l -r changepw mylist somebody@example.org foobar

AUTHOR
       Author of Mailman is the Mailman Cabal,  see  http://www.list.org/  for
       information.  This  manpage  is written for Debian by Bernd S. Brentrup
       <bsb@debian.org>, but may be used by others.

SEE ALSO
       Mailman    documentation     on     http://www.list.org/     and     in
       /usr/share/doc/mailman.

                                  2007-07-14                       withlist(8)

Man(1) output converted with man2html
list of all man pages