summaryrefslogtreecommitdiff
path: root/mailman/app/commands.py
diff options
context:
space:
mode:
authorBarry Warsaw2008-04-26 01:39:14 -0400
committerBarry Warsaw2008-04-26 01:39:14 -0400
commitfbd382c07dc621bda9b724675b1df75746d07179 (patch)
tree28f18a653afc000b4b7595e7793e2b76c833ab9e /mailman/app/commands.py
parent574405b3aa5e3afa475c9e2904a27be40c0bbc83 (diff)
parent2547651d03cfdf23632ded85c05bb02161688d45 (diff)
downloadmailman-fbd382c07dc621bda9b724675b1df75746d07179.tar.gz
mailman-fbd382c07dc621bda9b724675b1df75746d07179.tar.zst
mailman-fbd382c07dc621bda9b724675b1df75746d07179.zip
Diffstat (limited to 'mailman/app/commands.py')
-rw-r--r--mailman/app/commands.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/mailman/app/commands.py b/mailman/app/commands.py
new file mode 100644
index 000000000..1f79b8ef7
--- /dev/null
+++ b/mailman/app/commands.py
@@ -0,0 +1,42 @@
+# Copyright (C) 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.
+
+"""Initialize the email commands."""
+
+__metaclass__ = type
+__all__ = [
+ 'initialize',
+ ]
+
+
+from mailman.app.plugins import get_plugins
+from mailman.configuration import config
+from mailman.interfaces import IEmailCommand
+
+
+
+def initialize():
+ """Initialize the email commands."""
+ for module in get_plugins('mailman.commands'):
+ for name in module.__all__:
+ command_class = getattr(module, name)
+ if not IEmailCommand.implementedBy(command_class):
+ continue
+ assert command_class.name not in config.commands, (
+ 'Duplicate email command "%s" found in %s' %
+ (command_class.name, module))
+ config.commands[command_class.name] = command_class()