diff --git a/bin/rmlist b/bin/rmlist index 8b58a3c..b31141e 100755 --- a/bin/rmlist +++ b/bin/rmlist @@ -37,6 +37,7 @@ Where: """ import os +import re import sys import getopt import shutil @@ -121,7 +122,7 @@ def main(): sys.modules[modname].remove(mlist) REMOVABLES = [ - (os.path.join('lists', listname), C_('list info')), + (os.path.join(mm_cfg.LIST_DATA_DIR, listname), C_('list info')), ] # Remove any stale locks associated with the list @@ -131,20 +132,27 @@ def main(): REMOVABLES.append((os.path.join(mm_cfg.LOCK_DIR, filename), C_('stale lock file'))) + # Remove any held messages for this list + for filename in os.listdir(mm_cfg.DATA_DIR): + cre = re.compile('^heldmsg-%s-\d+\.(pck|txt)$' % listname, + re.IGNORECASE) + if cre.match(filename): + REMOVABLES.append((os.path.join(mm_cfg.DATA_DIR, filename), + C_('held message file'))) + if removeArchives: REMOVABLES.extend([ - (os.path.join('archives', 'private', listname), + (os.path.join(mm_cfg.PRIVATE_ARCHIVE_FILE_DIR, listname), C_('private archives')), - (os.path.join('archives', 'private', listname + '.mbox'), + (os.path.join(mm_cfg.PRIVATE_ARCHIVE_FILE_DIR, listname + '.mbox'), C_('private archives')), - (os.path.join('archives', 'public', listname), + (os.path.join(mm_cfg.PUBLIC_ARCHIVE_FILE_DIR, listname), C_('public archives')), - (os.path.join('archives', 'public', listname + '.mbox'), + (os.path.join(mm_cfg.PUBLIC_ARCHIVE_FILE_DIR, listname + '.mbox'), C_('public archives')), ]) - for dirtmpl, msg in REMOVABLES: - dir = os.path.join(mm_cfg.VAR_PREFIX, dirtmpl) + for dir, msg in REMOVABLES: remove_it(listname, dir, msg)