Add Debian directory
[mspang/vmailman.git] / debian / manpages / withlist.8
1 .TH withlist 8 2004-03-24
2 .SH NAME
3 withlist \- General framework for interacting with a mailing list object.
4
5 .SH SYNOPSIS
6 withlist [options] listname [args ...]
7
8 There are two ways to use this script: interactively or programmatically.
9 Using it interactively allows you to play with, examine and modify a MailList
10 object from Python's interactive interpreter.  When running interactively, a
11 MailList object called `m' will be available in the global namespace.  It also
12 loads the class MailList into the global namespace.
13
14 Programmatically, you can write a function to operate on a MailList object,
15 and this script will take care of the housekeeping (see below for examples).
16 In that case, the general usage syntax is:
17
18 .SH OPTIONS
19 .PP
20 .TP
21 \fB\-l\fB, \fB\-\-lock\fB
22 Lock the list when opening.  Normally the list is opened unlocked
23 (e.g. for read-only operations).  You can always lock the file after
24 the fact by typing `m.Lock()'
25
26 Note that if you use this option, you should explicitly call m.Save()
27 before exiting, since the interpreter's clean up procedure will not
28 automatically save changes to the MailList object (but it will unlock
29 the list).
30 .TP
31 \fB\-i\fB, \fB\-\-interactive\fB
32 Leaves you at an interactive prompt after all other processing is
33 complete.  This is the default unless the \fB\-r\fB option is given.
34 .TP
35 \fB\-r\fB \fI[module.]callable\fI, \fB\-\-run\fB \fI[module.]callable\fI
36 This can be used to run a script with the opened MailList object.
37 This works by attempting to import \fImodule\f[] (which must already be
38 accessible on your sys.path), and then calling \fIcallable\f[] from the
39 module.  \fIcallable\f[] can be a class or function; it is called with the
40 MailList object as the first argument.  If additional args are given
41 on the command line, they are passed as subsequent positional args to
42 the callable.
43
44 Note that \fImodule.\f[] is optional; if it is omitted then a module with
45 the name \fIcallable\f[] will be imported.
46
47 The global variable `r' will be set to the results of this call.
48 .TP
49 \fB\-a\fB, \fB\-\-all\fB
50 This option only works with the \fB\-r\f[] option.  Use this if you want to
51 execute the script on all mailing lists.  When you use \fB\-a\f[] you should
52 not include a listname argument on the command line.  The variable `r'
53 will be a list of all the results.
54 .TP
55 \fB\-q\fB, \fB\-\-quiet\fB
56 Suppress all status messages.
57 .TP
58 \fB\-h\fB, \fB\-\-help\fB
59 Print a small help text and exit
60 .PP
61
62 .SH EXAMPLES
63 Here's an example of how to use the \fB\-r\f[] option.  Say you have a file in the
64 Mailman installation directory called `listaddr.py', with the following
65 two functions:
66
67   def listaddr(mlist):
68       print mlist.GetListEmail()
69
70   def requestaddr(mlist):
71       print mlist.GetRequestEmail()
72
73 Now, from the command line you can print the list's posting address by running
74 the following from the command line:
75
76   % bin/withlist \-r listaddr mylist
77   Loading list: mylist (unlocked)
78   Importing listaddr ...
79   Running listaddr.listaddr() ...
80   mylist@myhost.com
81
82 And you can print the list's request address by running:
83
84   % bin/withlist \-r listaddr.requestaddr mylist
85   Loading list: mylist (unlocked)
86   Importing listaddr ...
87   Running listaddr.requestaddr() ...
88   mylist-request@myhost.com
89
90 As another example, say you wanted to change the password for a particular
91 user on a particular list.  You could put the following function in a file
92 called `changepw.py':
93
94   from Mailman.Errors import NotAMemberError
95
96   def changepw(mlist, addr, newpasswd):
97       try:
98           mlist.setMemberPassword(addr, newpasswd)
99           mlist.Save()
100       except NotAMemberError:
101           print 'No address matched:', addr
102
103  and run this from the command line:
104  % bin/withlist \-l \-r changepw mylist somebody@somewhere.org foobar
105 .PP
106
107 .SH AUTHOR
108 Author of Mailman is the Mailman Cabal, see http://www.list.org/ for
109 information.  This manpage is written for Debian by Bernd S. Brentrup
110 <bsb@debian.org>.
111
112 .SH SEE ALSO
113 Mailman documentation on http://www.list.org/ and in
114 /usr/share/doc/mailman.
115