10.2 Hooks usage examples

Usage of hooks is as follows:

mbfl_hook_global_declare(MY_HOOK)
declare FLAG1=false FLAG2=false

mbfl_hook_define _(MY_HOOK)

mbfl_hook_add _(MY_HOOK) 'FLAG1=true'
mbfl_hook_add _(MY_HOOK) 'FLAG2=true'

mbfl_hook_run _(MY_HOOK)

$FLAG1 && $FLAG2 ;# true

mbfl_hook_undefine _(MY_HOOK)

Hooks are usually declared as global variables, but, if needed, we can undefine a hook using a location:

mbfl_hook_declare(MY_HOOK)
declare FLAG1=false FLAG2=false

mbfl_location_enter
{
    mbfl_hook_define _(MY_HOOK)
    mbfl_location_handler "mbfl_hook_undefine _(MY_HOOK)"

    mbfl_hook_add _(MY_HOOK) 'FLAG1=true'
    mbfl_hook_add _(MY_HOOK) 'FLAG2=true'
    mbfl_hook_run _(MY_HOOK)
}
mbfl_location_leave

$FLAG1 && $FLAG2 ;# true

This document describes version 3.0.0-devel.9 of Marcos Bash Functions Library.