diff options
| author | David Bremner <david@tethera.net> | 2020-12-31 18:20:31 -0400 |
|---|---|---|
| committer | David Bremner <david@tethera.net> | 2021-03-20 07:39:12 -0300 |
| commit | e823d05ae6dc920d4fc9abf774c3d2575d891d7b (patch) | |
| tree | a66d028308be1a14a3b6f5fcae9feaa12cc3aede /lib/config.cc | |
| parent | 986056bdbcfea642a2d08f7ee257f7aaaed433b9 (diff) | |
lib: support splitting mail from database location.
Introduce a new configuration value for the mail root, and use it to
locate mail messages in preference to the database.path (which
previously implied the mail messages were also in this location.
Initially only a subset of the CLI is tested in a split
configuration. Further changes will be needed for the remainder of the
CLI to work in split configurations.
Diffstat (limited to 'lib/config.cc')
| -rw-r--r-- | lib/config.cc | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/config.cc b/lib/config.cc index 483a02ef..f2060e28 100644 --- a/lib/config.cc +++ b/lib/config.cc @@ -406,6 +406,8 @@ _notmuch_config_key_to_string (notmuch_config_key_t key) switch (key) { case NOTMUCH_CONFIG_DATABASE_PATH: return "database.path"; + case NOTMUCH_CONFIG_MAIL_ROOT: + return "database.mail_root"; case NOTMUCH_CONFIG_HOOK_DIR: return "database.hook_dir"; case NOTMUCH_CONFIG_EXCLUDE_TAGS: @@ -428,7 +430,7 @@ _notmuch_config_key_to_string (notmuch_config_key_t key) } static const char * -_notmuch_config_default (void *ctx, notmuch_config_key_t key) +_notmuch_config_default (notmuch_database_t *notmuch, notmuch_config_key_t key) { char *path; @@ -436,11 +438,14 @@ _notmuch_config_default (void *ctx, notmuch_config_key_t key) case NOTMUCH_CONFIG_DATABASE_PATH: path = getenv ("MAILDIR"); if (path) - path = talloc_strdup (ctx, path); + path = talloc_strdup (notmuch, path); else - path = talloc_asprintf (ctx, "%s/mail", + path = talloc_asprintf (notmuch, "%s/mail", getenv ("HOME")); return path; + case NOTMUCH_CONFIG_MAIL_ROOT: + /* by default, mail root is the same as database path */ + return notmuch_database_get_path (notmuch); case NOTMUCH_CONFIG_EXCLUDE_TAGS: return ""; case NOTMUCH_CONFIG_NEW_TAGS: |
