========================= Command line list display ========================= A system administrator can display all the mailing lists via the command line. When there are no mailing lists, a helpful message is displayed. :: >>> class FakeArgs: ... advertised = False ... names = False ... descriptions = False ... quiet = False ... domains = None >>> from mailman.commands.cli_lists import Lists >>> command = Lists() >>> command.process(FakeArgs) No matching mailing lists found When there are a few mailing lists, they are shown in alphabetical order by their fully qualified list names, with a description. :: >>> from mailman.interfaces.domain import IDomainManager >>> from zope.component import getUtility >>> getUtility(IDomainManager).add('example.net') >>> mlist_1 = create_list('list-one@example.com') >>> mlist_1.description = 'List One' >>> mlist_2 = create_list('list-two@example.com') >>> mlist_2.description = 'List Two' >>> mlist_3 = create_list('list-one@example.net') >>> mlist_3.description = 'List One in Example.Net' >>> command.process(FakeArgs) 3 matching mailing lists found: list-one@example.com list-one@example.net list-two@example.com Names ===== You can display the mailing list names with their posting addresses, using the ``--names/-n`` switch. >>> FakeArgs.names = True >>> command.process(FakeArgs) 3 matching mailing lists found: list-one@example.com [List-one] list-one@example.net [List-one] list-two@example.com [List-two] Descriptions ============ You can also display the mailing list descriptions, using the ``--descriptions/-d`` option. >>> FakeArgs.descriptions = True >>> command.process(FakeArgs) 3 matching mailing lists found: list-one@example.com [List-one] - List One list-one@example.net [List-one] - List One in Example.Net list-two@example.com [List-two] - List Two Maybe you want the descriptions but not the names. >>> FakeArgs.names = False >>> command.process(FakeArgs) 3 matching mailing lists found: list-one@example.com - List One list-one@example.net - List One in Example.Net list-two@example.com - List Two Less verbosity ============== There's also a ``--quiet/-q`` switch which reduces the verbosity a bit. >>> FakeArgs.quiet = True >>> FakeArgs.descriptions = False >>> command.process(FakeArgs) list-one@example.com list-one@example.net list-two@example.com Specific domain =============== You can narrow the search down to a specific domain with the --domain option. A helpful message is displayed if no matching domains are given. >>> FakeArgs.quiet = False >>> FakeArgs.domain = ['example.org'] >>> command.process(FakeArgs) No matching mailing lists found But if a matching domain is given, only mailing lists in that domain are shown. >>> FakeArgs.domain = ['example.net'] >>> command.process(FakeArgs) 1 matching mailing lists found: list-one@example.net More than one --domain argument can be given; then all mailing lists in matching domains are shown. >>> FakeArgs.domain = ['example.com', 'example.net'] >>> command.process(FakeArgs) 3 matching mailing lists found: list-one@example.com list-one@example.net list-two@example.com Advertised lists ================ Mailing lists can be 'advertised' meaning their existence is public knowledge. Non-advertised lists are considered private. Display through the command line can select on this attribute. :: >>> FakeArgs.domain = [] >>> FakeArgs.advertised = True >>> mlist_1.advertised = False >>> command.process(FakeArgs) 2 matching mailing lists found: list-one@example.net list-two@example.com