On 12/14/15 at 01:45pm, Allan McRae wrote:
This provides a way to detect when the processing of package changes starts, allowing pacman to deliminate hook output and package installation/removal
s/deliminate/delineate/?
output.
Signed-off-by: Allan McRae <allan@archlinux.org> --- lib/libalpm/alpm.h | 4 ++++ lib/libalpm/trans.c | 5 +++++ src/pacman/callback.c | 4 ++++ 3 files changed, 13 insertions(+) ... diff --git a/lib/libalpm/trans.c b/lib/libalpm/trans.c index 06997a0..0ead10d 100644 --- a/lib/libalpm/trans.c +++ b/lib/libalpm/trans.c @@ -160,6 +160,7 @@ int SYMEXPORT alpm_trans_prepare(alpm_handle_t *handle, alpm_list_t **data) int SYMEXPORT alpm_trans_commit(alpm_handle_t *handle, alpm_list_t **data) { alpm_trans_t *trans; + alpm_event_any_t event;
/* Sanity checks */ CHECK_HANDLE(handle, return -1); @@ -197,6 +198,8 @@ int SYMEXPORT alpm_trans_commit(alpm_handle_t *handle, alpm_list_t **data) trans->state = STATE_COMMITING;
alpm_logaction(handle, ALPM_CALLER_PREFIX, "transaction started\n"); + event.type = ALPM_EVENT_TRANSACTION_START; + EVENT(handle, &event);
if(trans->add == NULL) { if(_alpm_remove_packages(handle, 1) == -1) { @@ -222,6 +225,8 @@ int SYMEXPORT alpm_trans_commit(alpm_handle_t *handle, alpm_list_t **data) alpm_logaction(handle, ALPM_CALLER_PREFIX, "transaction completed\n"); _alpm_hook_run(handle, ALPM_HOOK_POST_TRANSACTION); } + event.type = ALPM_EVENT_TRANSACTION_DONE; + EVENT(handle, &event);
You have the pre-transaction hooks outside the transaction events but the post hooks inside them.