Merge pull request #2004 from gaelicWizard/finalize

Create lib finalize hook
pull/2049/head
Noah Gorny 2022-01-18 19:40:05 +02:00 committed by GitHub
commit fd35094463
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 16 additions and 3 deletions

View File

@ -15,8 +15,11 @@ fi
# shellcheck disable=SC1090 # shellcheck disable=SC1090
source "${BASH_IT}"/vendor/github.com/erichs/composure/composure.sh source "${BASH_IT}"/vendor/github.com/erichs/composure/composure.sh
# We need to load logging module first as well in order to be able to log # Declare our end-of-main finishing hook
# shellcheck source=./lib/log.bash declare -a _bash_it_library_finalize_hook
# We need to load logging module early in order to be able to log
# shellcheck source-path=SCRIPTDIR/lib
source "${BASH_IT}/lib/log.bash" source "${BASH_IT}/lib/log.bash"
# We can only log it now # We can only log it now
@ -148,3 +151,8 @@ if ! _command_exists reload && [[ -n "${BASH_IT_RELOAD_LEGACY:-}" ]]; then
;; ;;
esac esac
fi fi
for _bash_it_library_finalize_f in "${_bash_it_library_finalize_hook[@]:-}"; do
eval "${_bash_it_library_finalize_f?}" # Use `eval` to achieve the same behavior as `$PROMPT_COMMAND`.
done
unset "${!_bash_it_library_finalize_@}"

View File

@ -147,6 +147,11 @@ Plugin Disable Callbacks
Plugins can define a function that will be called when the plugin is being disabled. Plugins can define a function that will be called when the plugin is being disabled.
The callback name should be ``{PLUGIN_NAME}_on_disable``\ , you can see ``gitstatus`` for usage example. The callback name should be ``{PLUGIN_NAME}_on_disable``\ , you can see ``gitstatus`` for usage example.
Library Finalization Callback
-----------------------------
Specifically for Bash-it library code, e.g. in the `lib` subdirectory, a hook is available to run some code at the very end of the main loader script after all other code has been loaded. For example, `lib/theme` uses `_bash_it_library_finalize_hook+=('_bash_it_appearance_scm_init')` to add a function to be called after all plugins have been loaded.
Using the pre-commit hook Using the pre-commit hook
------------------------- -------------------------

View File

@ -106,7 +106,7 @@ function _bash_it_appearance_scm_init() {
fi fi
fi fi
} }
_bash_it_appearance_scm_init _bash_it_library_finalize_hook+=('_bash_it_appearance_scm_init')
function scm { function scm {
if [[ "$SCM_CHECK" = false ]]; then if [[ "$SCM_CHECK" = false ]]; then