summaryrefslogtreecommitdiff
path: root/src/mailman/commands/cli_members.py
diff options
context:
space:
mode:
authorBarry Warsaw2010-01-23 19:22:35 -0500
committerBarry Warsaw2010-01-23 19:22:35 -0500
commit0ea2e10deb8e05a6afd6bb0bd32f62ee4e00ba83 (patch)
treecd124f45f5601df565548b82077df2890ed8b19b /src/mailman/commands/cli_members.py
parentd43c22c050926fdc438697399addfea4017ecafc (diff)
downloadmailman-0ea2e10deb8e05a6afd6bb0bd32f62ee4e00ba83.tar.gz
mailman-0ea2e10deb8e05a6afd6bb0bd32f62ee4e00ba83.tar.zst
mailman-0ea2e10deb8e05a6afd6bb0bd32f62ee4e00ba83.zip
Diffstat (limited to 'src/mailman/commands/cli_members.py')
-rw-r--r--src/mailman/commands/cli_members.py26
1 files changed, 20 insertions, 6 deletions
diff --git a/src/mailman/commands/cli_members.py b/src/mailman/commands/cli_members.py
index b47d72127..538b885db 100644
--- a/src/mailman/commands/cli_members.py
+++ b/src/mailman/commands/cli_members.py
@@ -60,6 +60,11 @@ class Members:
indicate standard input. Blank lines and lines That start with a
'#' are ignored. Without this option, this command displays
mailing list members."""))
+ command_parser.add_argument(
+ '-o', '--output',
+ dest='output_filename', metavar='FILENAME',
+ help=_("""Display output to FILENAME instead of stdout. FILENAME
+ can be '-' to indicate standard output."""))
# Required positional argument.
command_parser.add_argument(
'listname', metavar='LISTNAME', nargs=1,
@@ -89,12 +94,21 @@ class Members:
:param args: The command line arguments.
:type args: `argparse.Namespace`
"""
- addresses = list(mlist.members.addresses)
- if len(addresses) == 0:
- print mlist.fqdn_listname, 'has no members'
- return
- for address in sorted(addresses, key=attrgetter('address')):
- print formataddr((address.real_name, address.original_address))
+ if args.output_filename == '-' or args.output_filename is None:
+ fp = sys.stdout
+ else:
+ fp = codecs.open(args.output_filename, 'w', 'utf-8')
+ try:
+ addresses = list(mlist.members.addresses)
+ if len(addresses) == 0:
+ print >> fp, mlist.fqdn_listname, 'has no members'
+ return
+ for address in sorted(addresses, key=attrgetter('address')):
+ print >> fp, formataddr(
+ (address.real_name, address.original_address))
+ finally:
+ if fp is not sys.stdout:
+ fp.close()
def add_members(self, mlist, args):
"""Add the members in a file to a mailing list.