summaryrefslogtreecommitdiff
path: root/mailman/bin/list_lists.py
diff options
context:
space:
mode:
Diffstat (limited to 'mailman/bin/list_lists.py')
-rw-r--r--mailman/bin/list_lists.py72
1 files changed, 37 insertions, 35 deletions
diff --git a/mailman/bin/list_lists.py b/mailman/bin/list_lists.py
index 2bd85a947..7742f1dbb 100644
--- a/mailman/bin/list_lists.py
+++ b/mailman/bin/list_lists.py
@@ -15,53 +15,55 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
# USA.
-import optparse
-
from mailman import Defaults
from mailman import Version
from mailman.configuration import config
from mailman.i18n import _
from mailman.initialize import initialize
+from mailman.options import Options
-def parseargs():
- parser = optparse.OptionParser(version=Version.MAILMAN_VERSION,
- usage=_("""\
+class ScriptOptions(Options):
+ usage=_("""\
%prog [options]
-List all mailing lists."""))
- parser.add_option('-a', '--advertised',
- default=False, action='store_true',
- help=_("""\
+List all mailing lists.""")
+
+ def add_options(self):
+ super(ScriptOptions, self).add_options()
+ self.parser.add_option(
+ '-a', '--advertised',
+ default=False, action='store_true',
+ help=_("""\
List only those mailing lists that are publicly advertised"""))
- parser.add_option('-b', '--bare',
- default=False, action='store_true',
- help=_("""\
+ self.parser.add_option(
+ '-b', '--bare',
+ default=False, action='store_true',
+ help=_("""\
Displays only the list name, with no description."""))
- parser.add_option('-d', '--domain',
- default=[], type='string', action='append',
- dest='domains', help=_("""\
+ self.parser.add_option(
+ '-d', '--domain',
+ default=[], type='string', action='append',
+ dest='domains', help=_("""\
List only those mailing lists that match the given virtual domain, which may
be either the email host or the url host name. Multiple -d options may be
given."""))
- parser.add_option('-f', '--full',
- default=False, action='store_true',
- help=_("""\
+ self.parser.add_option(
+ '-f', '--full',
+ default=False, action='store_true',
+ help=_("""\
Print the full list name, including the posting address."""))
- parser.add_option('-C', '--config',
- help=_('Alternative configuration file to use'))
- opts, args = parser.parse_args()
- if args:
- parser.print_help()
- parser.error(_('Unexpected arguments'))
- return parser, opts, args
+
+ def sanity_check(self):
+ if len(self.arguments) > 0:
+ self.parser.error(_('Unexpected arguments'))
def main():
- parser, opts, args = parseargs()
- initialize(opts.config)
+ options = ScriptOptions()
+ options.initialize()
mlists = []
longest = 0
@@ -69,36 +71,36 @@ def main():
listmgr = config.db.list_manager
for fqdn_name in sorted(listmgr.names):
mlist = listmgr.get(fqdn_name)
- if opts.advertised and not mlist.advertised:
+ if options.options.advertised and not mlist.advertised:
continue
- if opts.domains:
- for domain in opts.domains:
+ if options.options.domains:
+ for domain in options.options.domains:
if domain in mlist.web_page_url or domain == mlist.host_name:
mlists.append(mlist)
break
else:
mlists.append(mlist)
- if opts.full:
+ if options.options.full:
name = mlist.fqdn_listname
else:
name = mlist.real_name
longest = max(len(name), longest)
- if not mlists and not opts.bare:
+ if not mlists and not options.options.bare:
print _('No matching mailing lists found')
return
- if not opts.bare:
+ if not options.options.bare:
num_mlists = len(mlists)
print _('$num_mlists matching mailing lists found:')
format = '%%%ds - %%.%ds' % (longest, 77 - longest)
for mlist in mlists:
- if opts.full:
+ if options.options.full:
name = mlist.fqdn_listname
else:
name = mlist.real_name
- if opts.bare:
+ if options.options.bare:
print name
else:
description = mlist.description or _('[no description available]')