diff options
| author | David Bremner <david@tethera.net> | 2022-07-29 08:23:11 -0300 |
|---|---|---|
| committer | David Bremner <david@tethera.net> | 2022-09-03 08:24:43 -0300 |
| commit | 8ba3057d01b11fb806581f8dc451a8891a4d4e0e (patch) | |
| tree | 6c7baaff06caea9c0ae5ca02dbc3f7df4f84fdb0 /lib | |
| parent | 25e2790e303b6d9334676e3165a92c6084aa3567 (diff) | |
lib/open: return non-SUCCESS on missing database path
This simplifies the logic of creating the directory path when it doesn't
exist.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/open.cc | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/lib/open.cc b/lib/open.cc index 85e46dc7..bc450555 100644 --- a/lib/open.cc +++ b/lib/open.cc @@ -192,6 +192,8 @@ _choose_database_path (notmuch_database_t *notmuch, const char **database_path, char **message) { + notmuch_status_t status; + if (! *database_path) { *database_path = getenv ("NOTMUCH_DATABASE"); } @@ -207,8 +209,6 @@ _choose_database_path (notmuch_database_t *notmuch, } } if (! *database_path) { - notmuch_status_t status; - *database_path = _xdg_dir (notmuch, "XDG_DATA_HOME", ".local/share", profile); status = _db_dir_exists (*database_path, message); if (status) { @@ -223,8 +223,6 @@ _choose_database_path (notmuch_database_t *notmuch, } if (! *database_path) { - notmuch_status_t status; - *database_path = talloc_asprintf (notmuch, "%s/mail", getenv ("HOME")); status = _db_dir_exists (*database_path, message); if (status) { @@ -241,6 +239,15 @@ _choose_database_path (notmuch_database_t *notmuch, *message = strdup ("Error: Database path must be absolute.\n"); return NOTMUCH_STATUS_PATH_ERROR; } + + status = _db_dir_exists (*database_path, message); + if (status) { + IGNORE_RESULT (asprintf (message, + "Error: database path '%s' does not exist or is not a directory.\n", + *database_path)); + return NOTMUCH_STATUS_NO_DATABASE; + } + return NOTMUCH_STATUS_SUCCESS; } @@ -638,10 +645,6 @@ notmuch_database_create_with_config (const char *database_path, &database_path, &message))) goto DONE; - status = _db_dir_exists (database_path, &message); - if (status) - goto DONE; - _set_database_path (notmuch, database_path); if (key_file && ! (notmuch->params & NOTMUCH_PARAM_SPLIT)) { |
