Skip to content
Snippets Groups Projects
Commit a4de1a34 authored by Richard Hartmann's avatar Richard Hartmann
Browse files

Improve hook support

* Fix and expand manpage
* Use explicit variable names in hook()
parent c189913f
Branches
Tags
No related merge requests found
...@@ -113,18 +113,21 @@ appropriate values for fake bare git repositories. ...@@ -113,18 +113,21 @@ appropriate values for fake bare git repositories.
## HOOK SYSTEM ## HOOK SYSTEM
`vcsh` provides a hook system. Hook scripts need to be executable and placed `vcsh` provides a hook system. Hook scripts must be executable and should be
in <$XDG_CONFIG_HOME/vcsh/hooks-available>. From there, they should be placed in <$XDG_CONFIG_HOME/vcsh/hooks-available>. From there, they can be
soft-linked <$XDG_CONFIG_HOME/vcsh/hooks-enabled>. soft-linked into <$XDG_CONFIG_HOME/vcsh/hooks-enabled>; `vcsh` will only
execute hooks that are in this directory.
Hooks follow a simple format. `pre-run` will be run before anything is run. Hooks follow a simple format. `pre-run` will be run before anything is run.
If you want to have more than one script for a certain hook, just append If you want to have more than one script for a certain hook, just append
strings to order them. A system of `pre-run`, `pre-run.10`, `pre-run.20` etc any kind of string to order them. A system of `pre-run`, `pre-run.10`,
is suggested. The dot it optional. `pre-run.20` etc is suggested; other options would be `pre-run-10` or
`pre-run.sh`. A dot after the hook name is optional.
If you want to create hooks for a specific `vcsh` repository, simply prepend If you want to create hooks for a specific `vcsh` repository, simply prepend
the repository's name, followed by a dot, i.e. `zsh.pre-run`. This dot is the repository's name, followed by a dot, i.e. `zsh.pre-run`. Otherwise, the
mandatory. same rules as above apply. The dot between the repository's name and the hook
is mandatory, though.
## DETAILED HOWTO AND FURTHER READING ## DETAILED HOWTO AND FURTHER READING
......
...@@ -115,9 +115,9 @@ git_dir_exists() { ...@@ -115,9 +115,9 @@ git_dir_exists() {
} }
hook() { hook() {
for f in $VCSH_HOOK_D/$1* $VCSH_HOOK_D/$VCSH_REPO_NAME.$1*; do for hook in $VCSH_HOOK_D/$1* $VCSH_HOOK_D/$VCSH_REPO_NAME.$1*; do
[ -x "$f" ] || continue [ -x "$hook" ] || continue
"$f" "$hook"
done done
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment