Hooks

For every command yadm supports, a program can be provided to run before or after that command. These are referred to as “hooks”. yadm looks for hooks in the directory $HOME/.config/yadm/hooks. Each hook is named using a prefix of pre_ or post_, followed by the command which should trigger the hook. For example, to create a hook which is run after every yadm pull command, create a hook named post_pull. Hooks must have the executable file permission set.

If a pre_ hook is defined, and the hook terminates with a non-zero exit status, yadm will refuse to run the yadm command. For example, if a pre_commit hook is defined, but that command ends with a non-zero exit status, the yadm commit will never be run. This allows one to “short-circuit” any operation using a pre_ hook.

Hooks have the following environment variables available to them at runtime:

YADM_HOOK_COMMAND
The command which triggered the hook
YADM_HOOK_EXIT
The exit status of the yadm command
YADM_HOOK_FULL_COMMAND
The yadm command with all command line arguments
YADM_HOOK_REPO
The path to the yadm repository
YADM_HOOK_WORK
The path to the work-tree