summaryrefslogtreecommitdiff
path: root/src/mailman/config/config.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/config/config.py')
-rw-r--r--src/mailman/config/config.py46
1 files changed, 17 insertions, 29 deletions
diff --git a/src/mailman/config/config.py b/src/mailman/config/config.py
index 424ad03c0..415e1e3d2 100644
--- a/src/mailman/config/config.py
+++ b/src/mailman/config/config.py
@@ -17,13 +17,6 @@
"""Configuration file loading and management."""
-__all__ = [
- 'Configuration',
- 'external_configuration',
- 'load_external'
- ]
-
-
import os
import sys
import mailman.templates
@@ -31,7 +24,7 @@ import mailman.templates
from configparser import ConfigParser
from flufl.lock import Lock
from lazr.config import ConfigSchema, as_boolean
-from mailman import version
+from mailman import public, version
from mailman.interfaces.configuration import (
ConfigurationUpdatedEvent, IConfiguration, MissingConfigurationFileError)
from mailman.interfaces.languages import ILanguageManager
@@ -47,7 +40,6 @@ from zope.interface import implementer
SPACE = ' '
SPACERS = '\n'
-
MAILMAN_CFG_TEMPLATE = """\
# AUTOMATICALLY GENERATED BY MAILMAN ON {}
#
@@ -64,7 +56,7 @@ MAILMAN_CFG_TEMPLATE = """\
# recipient: your.address@your.domain"""
-
+@public
@implementer(IConfiguration)
class Configuration:
"""The core global configuration object."""
@@ -155,28 +147,23 @@ class Configuration:
# relative.
var_dir = os.environ.get('MAILMAN_VAR_DIR', category.var_dir)
substitutions = dict(
- cwd = os.getcwd(),
- argv = default_bin_dir,
- # Directories.
- bin_dir = category.bin_dir,
- data_dir = category.data_dir,
- etc_dir = category.etc_dir,
- ext_dir = category.ext_dir,
- list_data_dir = category.list_data_dir,
- lock_dir = category.lock_dir,
- log_dir = category.log_dir,
- messages_dir = category.messages_dir,
- archive_dir = category.archive_dir,
- queue_dir = category.queue_dir,
- var_dir = var_dir,
- template_dir = (
+ cwd=os.getcwd(),
+ argv=default_bin_dir,
+ var_dir=var_dir,
+ template_dir=(
os.path.dirname(mailman.templates.__file__)
if category.template_dir == ':source:'
else category.template_dir),
- # Files.
- lock_file = category.lock_file,
- pid_file = category.pid_file,
)
+ # Directories.
+ for name in ('archive', 'bin', 'data', 'etc', 'ext', 'list_data',
+ 'lock', 'log', 'messages', 'queue'):
+ key = '{}_dir'.format(name)
+ substitutions[key] = getattr(category, key)
+ # Files.
+ for name in ('lock', 'pid'):
+ key = '{}_file'.format(name)
+ substitutions[key] = getattr(category, key)
# Add the path to the .cfg file, if one was given on the command line.
if self.filename is not None:
substitutions['cfg_file'] = self.filename
@@ -264,7 +251,7 @@ class Configuration:
yield from self._config.getByCategory('language', [])
-
+@public
def load_external(path):
"""Load the configuration file named by path.
@@ -286,6 +273,7 @@ def load_external(path):
return fp.read()
+@public
def external_configuration(path):
"""Parse the configuration file named by path.