Hooks
Hook commands are executed before and after events. Unlike scripts, hooks are
always run, even if --dry-run
is specified. Hooks should be fast and
idempotent.
Warning
Hooks are an experimental feature that might change in the future. If you use them then please report how you are using them.
The following events are defined:
Event | Trigger |
---|---|
command, e.g. add |
Running chezmoi command , e.g. chezmoi add |
read-source-state |
Reading the source state |
Each event can have a .pre
and/or a .post
command. The event.pre
command
is executed before event occurs and the event.post
command is executed
after event has occurred.
A command contains a command
and an optional array of strings args
.
Example
[hooks.read-source-state.pre]
command = "echo"
args = ["pre-read-source-state-hook"]
[hooks.apply.post]
command = "echo"
args = ["post-apply-hook"]
When running hooks, the CHEZMOI=1
and CHEZMOI_*
environment variables will
be set. CHEZMOI_COMMAND
is set to the chezmoi command being run,
CHEZMOI_COMMAND_DIR
is set to the directory where chezmoi was run from, and
CHEZMOI_ARGS
contains the full arguments to chezmoi, starting with the path to
chezmoi's executable.