lib: add NOTMUCH_STATUS_NO_CONFIG

This will allow client code to provide more meaningful diagnostics. In
particular it will enable "notmuch new" to continue suggsting the user
run "notmuch setup" to create a config after "notmuch new" is
transitioned to the new  configuration framework.
This commit is contained in:
David Bremner 2021-01-03 08:30:46 -04:00
parent 1f860a6c41
commit eea258c0c9
4 changed files with 9 additions and 2 deletions

View file

@ -50,6 +50,7 @@ ffibuilder.cdef(
NOTMUCH_STATUS_MALFORMED_CRYPTO_PROTOCOL,
NOTMUCH_STATUS_FAILED_CRYPTO_CONTEXT_CREATION,
NOTMUCH_STATUS_UNKNOWN_CRYPTO_PROTOCOL,
NOTMUCH_STATUS_NO_CONFIG,
NOTMUCH_STATUS_LAST_STATUS
} notmuch_status_t;
typedef enum {

View file

@ -50,6 +50,8 @@ class NotmuchError(Exception):
PathError,
capi.lib.NOTMUCH_STATUS_ILLEGAL_ARGUMENT:
IllegalArgumentError,
capi.lib.NOTMUCH_STATUS_NO_CONFIG:
NoConfigError,
}
return types[status]
@ -94,7 +96,7 @@ class UnsupportedOperationError(NotmuchError): pass
class UpgradeRequiredError(NotmuchError): pass
class PathError(NotmuchError): pass
class IllegalArgumentError(NotmuchError): pass
class NoConfigError(NotmuchError): pass
class ObjectDestroyedError(NotmuchError):
"""The object has already been destroyed and it's memory freed.

View file

@ -208,6 +208,10 @@ typedef enum _notmuch_status {
* something that notmuch doesn't know how to handle.
*/
NOTMUCH_STATUS_UNKNOWN_CRYPTO_PROTOCOL,
/**
* Unable to load a config file
*/
NOTMUCH_STATUS_NO_CONFIG,
/**
* Not an actual status value. Just a way to find out how many
* valid status values there are.

View file

@ -106,7 +106,7 @@ _load_key_file (const char *path,
*key_file = g_key_file_new ();
if (! g_key_file_load_from_file (*key_file, path, G_KEY_FILE_NONE, NULL)) {
status = NOTMUCH_STATUS_FILE_ERROR;
status = NOTMUCH_STATUS_NO_CONFIG;
}
DONE: