diff options
Diffstat (limited to 'src/mailman/config/config.py')
| -rw-r--r-- | src/mailman/config/config.py | 46 |
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. |
