summaryrefslogtreecommitdiff
path: root/g
diff options
context:
space:
mode:
Diffstat (limited to 'g')
-rwxr-xr-xg17
1 files changed, 17 insertions, 0 deletions
diff --git a/g b/g
index 8ae49d9a1c3e..0b322edbe4e1 100755
--- a/g
+++ b/g
@@ -52,7 +52,24 @@ local hook_name
ln -sf "${COREDIR?}/${repo?}/.git-hooks/${hook_name?}" "${hook?}"
fi
done
+ elif [ -d .git/modules/${repo}/hooks ] ; then
+ for hook_name in $(ls -1 ${COREDIR?}/.git-hooks) ; do
+ hook=".git/modules/${repo?}/hooks/${hook_name?}"
+ if [ ! -e "${hook?}" -o -L "${hook?}" ] ; then
+ rm -f "${hook?}"
+ ln -sf "${COREDIR?}/.git-hooks/${hook_name?}" "${hook?}"
+ fi
+ done
+ # override if need be by the submodules' own hooks
+ for hook_name in $(ls -1 ${COREDIR?}/${repo?}/.git-hooks 2>/dev/null) ; do
+ hook=".git/modules/${repo?}/hooks/${hook_name?}"
+ if [ ! -e "${hook?}" -o -L "${hook?}" ] ; then
+ rm -f "${hook?}"
+ ln -sf "${COREDIR?}/${repo?}/.git-hooks/${hook_name?}" "${hook?}"
+ fi
+ done
fi
+
}
refresh_all_hooks()