mirror of
https://github.com/moparisthebest/pacman
synced 2025-03-11 07:31:04 -04:00
alpm-hooks: add Description field
The "Description" field allows a hook to provide a some text for frontends to use in describing what the hook is doing. For example: Description = updating info page directory Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
parent
760bea5432
commit
d721bae443
@ -19,6 +19,7 @@ Type = File|Package (Required)
|
|||||||
Target = <Path|PkgName> (Required, Repeatable)
|
Target = <Path|PkgName> (Required, Repeatable)
|
||||||
|
|
||||||
[Action] (Required)
|
[Action] (Required)
|
||||||
|
Description = ... (Optional)
|
||||||
When = PreTransaction|PostTransaction (Required)
|
When = PreTransaction|PostTransaction (Required)
|
||||||
Exec = <Command> (Required)
|
Exec = <Command> (Required)
|
||||||
Depends = <PkgName> (Optional)
|
Depends = <PkgName> (Optional)
|
||||||
@ -63,6 +64,10 @@ defined the hook will run if the transaction matches *any* of the triggers.
|
|||||||
ACTIONS
|
ACTIONS
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
* Description =* ...::
|
||||||
|
An optional description that describes the action being taken by the
|
||||||
|
hook for use in front-end output.
|
||||||
|
|
||||||
*Exec =* <command>::
|
*Exec =* <command>::
|
||||||
Command to run. Command arguments are split on whitespace. Values
|
Command to run. Command arguments are split on whitespace. Values
|
||||||
containing whitespace should be enclosed in quotes. Required.
|
containing whitespace should be enclosed in quotes. Required.
|
||||||
|
@ -568,6 +568,8 @@ typedef struct _alpm_event_hook_run_t {
|
|||||||
alpm_event_type_t type;
|
alpm_event_type_t type;
|
||||||
/** Name of hook */
|
/** Name of hook */
|
||||||
const char *name;
|
const char *name;
|
||||||
|
/** Description of hook to be outputted */
|
||||||
|
const char *desc;
|
||||||
/** position of hook being run */
|
/** position of hook being run */
|
||||||
size_t position;
|
size_t position;
|
||||||
/** total hooks being run */
|
/** total hooks being run */
|
||||||
|
@ -48,6 +48,7 @@ struct _alpm_trigger_t {
|
|||||||
|
|
||||||
struct _alpm_hook_t {
|
struct _alpm_hook_t {
|
||||||
char *name;
|
char *name;
|
||||||
|
char *desc;
|
||||||
alpm_list_t *triggers;
|
alpm_list_t *triggers;
|
||||||
alpm_list_t *depends;
|
alpm_list_t *depends;
|
||||||
char **cmd;
|
char **cmd;
|
||||||
@ -84,6 +85,7 @@ static void _alpm_hook_free(struct _alpm_hook_t *hook)
|
|||||||
{
|
{
|
||||||
if(hook) {
|
if(hook) {
|
||||||
free(hook->name);
|
free(hook->name);
|
||||||
|
free(hook->desc);
|
||||||
_alpm_wordsplit_free(hook->cmd);
|
_alpm_wordsplit_free(hook->cmd);
|
||||||
alpm_list_free_inner(hook->triggers, (alpm_list_fn_free) _alpm_trigger_free);
|
alpm_list_free_inner(hook->triggers, (alpm_list_fn_free) _alpm_trigger_free);
|
||||||
alpm_list_free(hook->triggers);
|
alpm_list_free(hook->triggers);
|
||||||
@ -316,6 +318,8 @@ static int _alpm_hook_parse_cb(const char *file, int line,
|
|||||||
} else {
|
} else {
|
||||||
error(_("hook %s line %d: invalid value %s\n"), file, line, value);
|
error(_("hook %s line %d: invalid value %s\n"), file, line, value);
|
||||||
}
|
}
|
||||||
|
} else if(strcmp(key, "Description") == 0) {
|
||||||
|
STRDUP(hook->desc, value, return 1);
|
||||||
} else if(strcmp(key, "Depends") == 0) {
|
} else if(strcmp(key, "Depends") == 0) {
|
||||||
char *val;
|
char *val;
|
||||||
STRDUP(val, value, return 1);
|
STRDUP(val, value, return 1);
|
||||||
@ -732,6 +736,7 @@ int _alpm_hook_run(alpm_handle_t *handle, alpm_hook_when_t when)
|
|||||||
|
|
||||||
hook_event.type = ALPM_EVENT_HOOK_RUN_START;
|
hook_event.type = ALPM_EVENT_HOOK_RUN_START;
|
||||||
hook_event.name = hook->name;
|
hook_event.name = hook->name;
|
||||||
|
hook_event.desc = hook->desc;
|
||||||
EVENT(handle, &hook_event);
|
EVENT(handle, &hook_event);
|
||||||
|
|
||||||
if(_alpm_hook_run_hook(handle, hook) != 0 && hook->abort_on_fail) {
|
if(_alpm_hook_run_hook(handle, hook) != 0 && hook->abort_on_fail) {
|
||||||
|
@ -189,7 +189,8 @@ void cb_event(alpm_event_t *event)
|
|||||||
alpm_event_hook_run_t *e = &event->hook_run;
|
alpm_event_hook_run_t *e = &event->hook_run;
|
||||||
int digits = number_length(e->total);
|
int digits = number_length(e->total);
|
||||||
printf("(%*zu/%*zu) %s\n", digits, e->position,
|
printf("(%*zu/%*zu) %s\n", digits, e->position,
|
||||||
digits, e->total, e->name);
|
digits, e->total,
|
||||||
|
e->desc ? e->desc : e->name);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ALPM_EVENT_CHECKDEPS_START:
|
case ALPM_EVENT_CHECKDEPS_START:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user