summaryrefslogtreecommitdiff
path: root/mailman/bin/newlist.py
diff options
context:
space:
mode:
authorBarry Warsaw2008-03-22 21:43:38 -0400
committerBarry Warsaw2008-03-22 21:43:38 -0400
commit78aeaf14e41c473655267d8a0fad175c783012e7 (patch)
tree6a65a11c73c163299860d07409212e8215fe9165 /mailman/bin/newlist.py
parent6d9084326a4470da44c15193ddf0c4573fccb7f9 (diff)
downloadmailman-78aeaf14e41c473655267d8a0fad175c783012e7.tar.gz
mailman-78aeaf14e41c473655267d8a0fad175c783012e7.tar.zst
mailman-78aeaf14e41c473655267d8a0fad175c783012e7.zip
Diffstat (limited to 'mailman/bin/newlist.py')
-rw-r--r--mailman/bin/newlist.py141
1 files changed, 0 insertions, 141 deletions
diff --git a/mailman/bin/newlist.py b/mailman/bin/newlist.py
deleted file mode 100644
index 447b66f4a..000000000
--- a/mailman/bin/newlist.py
+++ /dev/null
@@ -1,141 +0,0 @@
-# Copyright (C) 1998-2008 by the Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-# USA.
-
-from __future__ import with_statement
-
-import sha
-import sys
-import getpass
-import datetime
-import optparse
-
-from mailman import Errors
-from mailman import Message
-from mailman import Utils
-from mailman import Version
-from mailman import i18n
-from mailman.app.lifecycle import create_list
-from mailman.configuration import config
-from mailman.initialize import initialize
-from mailman.interfaces import ListAlreadyExistsError
-
-
-_ = i18n._
-
-
-
-def parseargs():
- parser = optparse.OptionParser(version=Version.MAILMAN_VERSION,
- usage=_("""\
-%prog [options] fqdn_listname
-
-Create a new mailing list.
-
-fqdn_listname is the 'fully qualified list name', basically the posting
-address of the list. It must be a valid email address and the domain must be
-registered with Mailman.
-
-Note that listnames are forced to lowercase."""))
- parser.add_option('-l', '--language',
- type='string', action='store',
- help=_("""\
-Make the list's preferred language LANGUAGE, which must be a two letter
-language code."""))
- parser.add_option('-o', '--owner',
- type='string', action='append', default=[],
- dest='owners', help=_("""\
-Specific a listowner email address. If the address is not currently
-registered with Mailman, the address is registered and linked to a user.
-Mailman will send a confirmation message to the address, but it will also send
-a list creation notice to the address. More than one owner can be
-specified."""))
- parser.add_option('-q', '--quiet',
- default=False, action='store_true',
- help=_("""\
-Normally the administrator is notified by email (after a prompt) that their
-list has been created. This option suppresses the prompt and
-notification."""))
- parser.add_option('-a', '--automate',
- default=False, action='store_true',
- help=_("""\
-This option suppresses the prompt prior to administrator notification but
-still sends the notification. It can be used to make newlist totally
-non-interactive but still send the notification, assuming at least one list
-owner is specified with the -o option.."""))
- parser.add_option('-C', '--config',
- help=_('Alternative configuration file to use'))
- opts, args = parser.parse_args()
- # We can't verify opts.language here because the configuration isn't
- # loaded yet.
- return parser, opts, args
-
-
-
-def main():
- parser, opts, args = parseargs()
- initialize(opts.config)
-
- # Set up some defaults we couldn't set up in parseargs()
- if opts.language is None:
- opts.language = config.DEFAULT_SERVER_LANGUAGE
- # Is the language known?
- if opts.language not in config.languages.enabled_codes:
- parser.error(_('Unknown language: $opts.language'))
- # Handle variable number of positional arguments
- if len(args) == 0:
- parser.error(_('You must supply a mailing list name'))
- elif len(args) == 1:
- fqdn_listname = args[0].lower()
- elif len(args) > 1:
- parser.error(_('Unexpected arguments'))
-
- # Create the mailing list, applying styles as appropriate.
- try:
- mlist = create_list(fqdn_listname, opts.owners)
- mlist.preferred_language = opts.language
- except Errors.InvalidEmailAddress:
- parser.error(_('Illegal list name: $fqdn_listname'))
- except ListAlreadyExistsError:
- parser.error(_('List already exists: $fqdn_listname'))
- except Errors.BadDomainSpecificationError, domain:
- parser.error(_('Undefined domain: $domain'))
-
- config.db.flush()
-
- # Send notices to the list owners. XXX This should also be moved to the
- # Mailman.app.create module.
- if not opts.quiet and not opts.automate:
- print _('Hit enter to notify $fqdn_listname owners...'),
- sys.stdin.readline()
- if not opts.quiet:
- d = dict(
- listname = mlist.fqdn_listname,
- admin_url = mlist.script_url('admin'),
- listinfo_url = mlist.script_url('listinfo'),
- requestaddr = mlist.request_address,
- siteowner = mlist.no_reply_address,
- )
- text = Utils.maketext('newlist.txt', d, mlist=mlist)
- # Set the I18N language to the list's preferred language so the header
- # will match the template language. Stashing and restoring the old
- # translation context is just (healthy? :) paranoia.
- with i18n.using_language(mlist.preferred_language):
- msg = Message.UserNotification(
- owner_mail, mlist.no_reply_address,
- _('Your new mailing list: $listname'),
- text, mlist.preferred_language)
- msg.send(mlist)