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.
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.