diff --git a/afew/Database.py b/afew/Database.py index 208ed2b..b3aa2c7 100644 --- a/afew/Database.py +++ b/afew/Database.py @@ -17,6 +17,7 @@ class Database: def __init__(self): self.db_path = self._calculate_db_path() + self.mail_root = self._calculate_mail_root() self.handle = None def _calculate_db_path(self): @@ -34,6 +35,19 @@ def _calculate_db_path(self): return db_path + def _calculate_mail_root(self): + """ + Calculates the mail root directory. This is the directory that contains + the maildir directories. It is used to determine the relative path of + messages for notmuch. + """ + mail_root = notmuch_settings.get('database', 'mail_root', fallback=None) + + if mail_root is None: + mail_root = self.db_path + + return mail_root + def __enter__(self): """ Implements the context manager protocol. diff --git a/afew/filters/FolderNameFilter.py b/afew/filters/FolderNameFilter.py index 6b2a535..f10c4dd 100644 --- a/afew/filters/FolderNameFilter.py +++ b/afew/filters/FolderNameFilter.py @@ -14,7 +14,7 @@ def __init__(self, database, folder_blacklist='', folder_transforms='', super().__init__(database) self.__filename_pattern = '{mail_root}/(?P.*)/(cur|new)/[^/]+'.format( - mail_root=database.db_path.rstrip('/')) + mail_root=database.mail_root.rstrip('/')) self.__folder_explicit_list = set(shlex.split(folder_explicit_list)) self.__folder_blacklist = set(shlex.split(folder_blacklist)) self.__folder_transforms = self.__parse_transforms(folder_transforms)