diff options
Diffstat (limited to 'Mailman/configuration.py')
| -rw-r--r-- | Mailman/configuration.py | 72 |
1 files changed, 32 insertions, 40 deletions
diff --git a/Mailman/configuration.py b/Mailman/configuration.py index aa3e1f9cf..1943b3495 100644 --- a/Mailman/configuration.py +++ b/Mailman/configuration.py @@ -45,16 +45,17 @@ class Configuration(object): self.qrunners = {} def load(self, filename=None): + join = os.path.join # Load the configuration from the named file, or if not given, search - # in VAR_PREFIX for an etc/mailman.cfg file. If that file is missing, - # use Mailman/mm_cfg.py for backward compatibility. + # in the runtime data directory for an etc/mailman.cfg file. If that + # file is missing, use Mailman/mm_cfg.py for backward compatibility. # # Whatever you find, create a namespace and execfile that file in it. # The values in that namespace are exposed as attributes on this # Configuration instance. original_filename = filename if filename is None: - filename = os.path.join(Defaults.VAR_PREFIX, 'etc', 'mailman.cfg') + filename = join(Defaults.RUNTIME_DIR, 'etc', 'mailman.cfg') # Set up the execfile namespace ns = Defaults.__dict__.copy() # Prune a few things, add a few things @@ -86,47 +87,38 @@ class Configuration(object): if ns['USE_LMTP']: self.add_qrunner('LMTP') # Pull out the defaults - PREFIX = ns['PREFIX'] - VAR_PREFIX = ns['VAR_PREFIX'] - EXEC_PREFIX = ns['EXEC_PREFIX'] + RUNTIME_DIR = ns['RUNTIME_DIR'] # Now that we've loaded all the configuration files we're going to # load, set up some useful directories. - self.LIST_DATA_DIR = os.path.join(VAR_PREFIX, 'lists') - self.LOG_DIR = os.path.join(VAR_PREFIX, 'logs') - self.LOCK_DIR = lockdir = os.path.join(VAR_PREFIX, 'locks') - self.DATA_DIR = datadir = os.path.join(VAR_PREFIX, 'data') - self.ETC_DIR = etcdir = os.path.join(VAR_PREFIX, 'etc') - self.SPAM_DIR = os.path.join(VAR_PREFIX, 'spam') - self.EXT_DIR = os.path.join(VAR_PREFIX, 'ext') - self.WRAPPER_DIR = os.path.join(EXEC_PREFIX, 'mail') - self.BIN_DIR = os.path.join(PREFIX, 'bin') - self.SCRIPTS_DIR = os.path.join(PREFIX, 'scripts') - self.TEMPLATE_DIR = os.path.join(PREFIX, 'templates') - self.MESSAGES_DIR = os.path.join(PREFIX, 'messages') - self.PUBLIC_ARCHIVE_FILE_DIR = os.path.join(VAR_PREFIX, - 'archives', 'public') - self.PRIVATE_ARCHIVE_FILE_DIR = os.path.join(VAR_PREFIX, - 'archives', 'private') + self.LIST_DATA_DIR = join(RUNTIME_DIR, 'lists') + self.LOG_DIR = join(RUNTIME_DIR, 'logs') + self.LOCK_DIR = lockdir = join(RUNTIME_DIR, 'locks') + self.DATA_DIR = datadir = join(RUNTIME_DIR, 'data') + self.ETC_DIR = etcdir = join(RUNTIME_DIR, 'etc') + self.SPAM_DIR = join(RUNTIME_DIR, 'spam') + self.EXT_DIR = join(RUNTIME_DIR, 'ext') + self.PUBLIC_ARCHIVE_FILE_DIR = join(RUNTIME_DIR, 'archives', 'public') + self.PRIVATE_ARCHIVE_FILE_DIR = join( + RUNTIME_DIR, 'archives', 'private') # Directories used by the qrunner subsystem - self.QUEUE_DIR = qdir = os.path.join(VAR_PREFIX, 'qfiles') - self.INQUEUE_DIR = os.path.join(qdir, 'in') - self.OUTQUEUE_DIR = os.path.join(qdir, 'out') - self.CMDQUEUE_DIR = os.path.join(qdir, 'commands') - self.BOUNCEQUEUE_DIR = os.path.join(qdir, 'bounces') - self.NEWSQUEUE_DIR = os.path.join(qdir, 'news') - self.ARCHQUEUE_DIR = os.path.join(qdir, 'archive') - self.SHUNTQUEUE_DIR = os.path.join(qdir, 'shunt') - self.VIRGINQUEUE_DIR = os.path.join(qdir, 'virgin') - self.BADQUEUE_DIR = os.path.join(qdir, 'bad') - self.RETRYQUEUE_DIR = os.path.join(qdir, 'retry') - self.MAILDIR_DIR = os.path.join(qdir, 'maildir') + self.QUEUE_DIR = qdir = join(RUNTIME_DIR, 'qfiles') + self.INQUEUE_DIR = join(qdir, 'in') + self.OUTQUEUE_DIR = join(qdir, 'out') + self.CMDQUEUE_DIR = join(qdir, 'commands') + self.BOUNCEQUEUE_DIR = join(qdir, 'bounces') + self.NEWSQUEUE_DIR = join(qdir, 'news') + self.ARCHQUEUE_DIR = join(qdir, 'archive') + self.SHUNTQUEUE_DIR = join(qdir, 'shunt') + self.VIRGINQUEUE_DIR = join(qdir, 'virgin') + self.BADQUEUE_DIR = join(qdir, 'bad') + self.RETRYQUEUE_DIR = join(qdir, 'retry') + self.MAILDIR_DIR = join(qdir, 'maildir') # Other useful files - self.PIDFILE = os.path.join(datadir, - 'master-qrunner.pid') - self.SITE_PW_FILE = os.path.join(datadir, 'adm.pw') - self.LISTCREATOR_PW_FILE = os.path.join(datadir, 'creator.pw') - self.CONFIG_FILE = os.path.join(etcdir, 'mailman.cfg') - self.LOCK_FILE = os.path.join(lockdir, 'master-qrunner') + self.PIDFILE = join(datadir, 'master-qrunner.pid') + self.SITE_PW_FILE = join(datadir, 'adm.pw') + self.LISTCREATOR_PW_FILE = join(datadir, 'creator.pw') + self.CONFIG_FILE = join(etcdir, 'mailman.cfg') + self.LOCK_FILE = join(lockdir, 'master-qrunner') # Now update our dict so attribute syntax just works if 'add_domain' in ns: del ns['add_domain'] |
