From a4de1a34059bcccba7b97c87865bd3bc3d798667 Mon Sep 17 00:00:00 2001
From: Richard Hartmann <richih.mailinglist@gmail.com>
Date: Sat, 14 Jan 2012 17:04:19 +0100
Subject: [PATCH] Improve hook support

* Fix and expand manpage
* Use explicit variable names in hook()
---
 doc/vcsh.1.ronn | 17 ++++++++++-------
 vcsh            |  6 +++---
 2 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/doc/vcsh.1.ronn b/doc/vcsh.1.ronn
index c6e0152..bcea71c 100644
--- a/doc/vcsh.1.ronn
+++ b/doc/vcsh.1.ronn
@@ -113,18 +113,21 @@ appropriate values for fake bare git repositories.
 
 ## HOOK SYSTEM
 
-`vcsh` provides a hook system. Hook scripts need to be executable and placed
-in <$XDG_CONFIG_HOME/vcsh/hooks-available>. From there, they should be
-soft-linked <$XDG_CONFIG_HOME/vcsh/hooks-enabled>.
+`vcsh` provides a hook system. Hook scripts must be executable and should be
+placed in <$XDG_CONFIG_HOME/vcsh/hooks-available>. From there, they can be
+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.
 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
-is suggested. The dot it optional.
+any kind of string to order them. A system of `pre-run`, `pre-run.10`,
+`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
-the repository's name, followed by a dot, i.e. `zsh.pre-run`. This dot is
-mandatory.
+the repository's name, followed by a dot, i.e. `zsh.pre-run`. Otherwise, the
+same rules as above apply. The dot between the repository's name and the hook
+is mandatory, though.
 
 ## DETAILED HOWTO AND FURTHER READING
 
diff --git a/vcsh b/vcsh
index bf97cbf..29b5eb9 100755
--- a/vcsh
+++ b/vcsh
@@ -115,9 +115,9 @@ git_dir_exists() {
 }
 
 hook() {
-	for f in $VCSH_HOOK_D/$1* $VCSH_HOOK_D/$VCSH_REPO_NAME.$1*; do
-		[ -x "$f" ] || continue
-		"$f"
+	for hook in $VCSH_HOOK_D/$1* $VCSH_HOOK_D/$VCSH_REPO_NAME.$1*; do
+		[ -x "$hook" ] || continue
+		"$hook"
 	done
 }
 
-- 
GitLab