mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-25 12:28:09 +01:00
cli/insert: add post-insert hook
The post-new hook might no longer be needed or run very often if notmuch insert is being used. Therefore a post-insert hook is needed (arguably pre-insert not so much, so don't add one). Also add the --no-hooks option to skip hooks.
This commit is contained in:
parent
50eedb48ec
commit
19c09d870f
3 changed files with 27 additions and 0 deletions
|
@ -25,6 +25,9 @@ If the new message is a duplicate of an existing message in the database
|
||||||
(it has same Message-ID), it will be added to the maildir folder and
|
(it has same Message-ID), it will be added to the maildir folder and
|
||||||
notmuch database, but the tags will not be changed.
|
notmuch database, but the tags will not be changed.
|
||||||
|
|
||||||
|
The **insert** command supports hooks. See **notmuch-hooks(5)** for
|
||||||
|
more details on hooks.
|
||||||
|
|
||||||
Option arguments must appear before any tag operation arguments.
|
Option arguments must appear before any tag operation arguments.
|
||||||
Supported options for **insert** include
|
Supported options for **insert** include
|
||||||
|
|
||||||
|
@ -44,6 +47,9 @@ Supported options for **insert** include
|
||||||
fails. Ignore these errors and return exit status 0 to
|
fails. Ignore these errors and return exit status 0 to
|
||||||
indicate succesful mail delivery.
|
indicate succesful mail delivery.
|
||||||
|
|
||||||
|
``--no-hooks``
|
||||||
|
Prevent hooks from being run.
|
||||||
|
|
||||||
EXIT STATUS
|
EXIT STATUS
|
||||||
===========
|
===========
|
||||||
|
|
||||||
|
@ -54,6 +60,9 @@ indexing to Notmuch database, changing tags, and synchronizing tags to
|
||||||
maildir flags. The ``--keep`` option may be used to settle for
|
maildir flags. The ``--keep`` option may be used to settle for
|
||||||
successful message file delivery.
|
successful message file delivery.
|
||||||
|
|
||||||
|
The exit status of the **post-insert** hook does not affect the exit
|
||||||
|
status of the **insert** command.
|
||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
========
|
========
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,17 @@ The currently available hooks are described below.
|
||||||
Typically this hook is used to perform additional query-based
|
Typically this hook is used to perform additional query-based
|
||||||
tagging on the imported messages.
|
tagging on the imported messages.
|
||||||
|
|
||||||
|
**post-insert**
|
||||||
|
|
||||||
|
This hook is invoked by the **insert** command after the
|
||||||
|
message has been delivered, added to the database, and initial
|
||||||
|
tags have been applied. The hook will not be run if there have
|
||||||
|
been any errors during the message delivery; what is regarded
|
||||||
|
as succesful delivery depends on the ``--keep`` option.
|
||||||
|
|
||||||
|
Typically this hook is used to perform additional query-based
|
||||||
|
tagging on the delivered messages.
|
||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
========
|
========
|
||||||
|
|
||||||
|
|
|
@ -454,6 +454,7 @@ notmuch_insert_command (notmuch_config_t *config, int argc, char *argv[])
|
||||||
const char *folder = NULL;
|
const char *folder = NULL;
|
||||||
notmuch_bool_t create_folder = FALSE;
|
notmuch_bool_t create_folder = FALSE;
|
||||||
notmuch_bool_t keep = FALSE;
|
notmuch_bool_t keep = FALSE;
|
||||||
|
notmuch_bool_t no_hooks = FALSE;
|
||||||
notmuch_bool_t synchronize_flags;
|
notmuch_bool_t synchronize_flags;
|
||||||
const char *maildir;
|
const char *maildir;
|
||||||
char *newpath;
|
char *newpath;
|
||||||
|
@ -464,6 +465,7 @@ notmuch_insert_command (notmuch_config_t *config, int argc, char *argv[])
|
||||||
{ NOTMUCH_OPT_STRING, &folder, "folder", 0, 0 },
|
{ NOTMUCH_OPT_STRING, &folder, "folder", 0, 0 },
|
||||||
{ NOTMUCH_OPT_BOOLEAN, &create_folder, "create-folder", 0, 0 },
|
{ NOTMUCH_OPT_BOOLEAN, &create_folder, "create-folder", 0, 0 },
|
||||||
{ NOTMUCH_OPT_BOOLEAN, &keep, "keep", 0, 0 },
|
{ NOTMUCH_OPT_BOOLEAN, &keep, "keep", 0, 0 },
|
||||||
|
{ NOTMUCH_OPT_BOOLEAN, &no_hooks, "no-hooks", 'n', 0 },
|
||||||
{ NOTMUCH_OPT_END, 0, 0, 0, 0 }
|
{ NOTMUCH_OPT_END, 0, 0, 0, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -565,5 +567,10 @@ notmuch_insert_command (notmuch_config_t *config, int argc, char *argv[])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (! no_hooks && status == NOTMUCH_STATUS_SUCCESS) {
|
||||||
|
/* Ignore hook failures. */
|
||||||
|
notmuch_run_hook (db_path, "post-insert");
|
||||||
|
}
|
||||||
|
|
||||||
return status ? EXIT_FAILURE : EXIT_SUCCESS;
|
return status ? EXIT_FAILURE : EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue