mirror of
https://github.com/moparisthebest/pacman
synced 2025-02-28 09:21:53 -05:00
Add ALPM_EVENT_TRANSACTION_{START,DONE} events
This provides a way to detect when the processing of package changes starts, allowing pacman to delineate hook output and package installation/removal output. Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
parent
132ec4c3b9
commit
8d3bd4ec13
@ -384,6 +384,10 @@ typedef enum _alpm_event_type_t {
|
||||
ALPM_EVENT_INTERCONFLICTS_START,
|
||||
/** Inter-conflicts were checked for target package. */
|
||||
ALPM_EVENT_INTERCONFLICTS_DONE,
|
||||
/** Processing the package transaction is starting. */
|
||||
ALPM_EVENT_TRANSACTION_START,
|
||||
/** Processing the package transaction is finished. */
|
||||
ALPM_EVENT_TRANSACTION_DONE,
|
||||
/** Package will be installed/upgraded/downgraded/re-installed/removed; See
|
||||
* alpm_event_package_operation_t for arguments. */
|
||||
ALPM_EVENT_PACKAGE_OPERATION_START,
|
||||
|
@ -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) {
|
||||
@ -219,6 +222,8 @@ int SYMEXPORT alpm_trans_commit(alpm_handle_t *handle, alpm_list_t **data)
|
||||
if(trans->state == STATE_INTERRUPTED) {
|
||||
alpm_logaction(handle, ALPM_CALLER_PREFIX, "transaction interrupted\n");
|
||||
} else {
|
||||
event.type = ALPM_EVENT_TRANSACTION_DONE;
|
||||
EVENT(handle, &event);
|
||||
alpm_logaction(handle, ALPM_CALLER_PREFIX, "transaction completed\n");
|
||||
_alpm_hook_run(handle, ALPM_HOOK_POST_TRANSACTION);
|
||||
}
|
||||
|
@ -188,6 +188,9 @@ void cb_event(alpm_event_t *event)
|
||||
case ALPM_EVENT_INTERCONFLICTS_START:
|
||||
printf(_("looking for conflicting packages...\n"));
|
||||
break;
|
||||
case ALPM_EVENT_TRANSACTION_START:
|
||||
colon_printf(_("Processing package changes...\n"));
|
||||
break;
|
||||
case ALPM_EVENT_PACKAGE_OPERATION_START:
|
||||
if(config->noprogressbar) {
|
||||
alpm_event_package_operation_t *e = &event->package_operation;
|
||||
@ -327,6 +330,7 @@ void cb_event(alpm_event_t *event)
|
||||
case ALPM_EVENT_CHECKDEPS_DONE:
|
||||
case ALPM_EVENT_RESOLVEDEPS_DONE:
|
||||
case ALPM_EVENT_INTERCONFLICTS_DONE:
|
||||
case ALPM_EVENT_TRANSACTION_DONE:
|
||||
case ALPM_EVENT_INTEGRITY_DONE:
|
||||
case ALPM_EVENT_KEYRING_DONE:
|
||||
case ALPM_EVENT_KEY_DOWNLOAD_DONE:
|
||||
|
Loading…
x
Reference in New Issue
Block a user