summaryrefslogtreecommitdiff
path: root/git-shell-commands/hook-install
blob: cfd4962735b445edf155358e34d1551b0fce390a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/sh
# * hook-install
#   Installs a hook on a repo
#   ssh git@host hook-install hook script repo [alt-dir]

set -e

hook="${1}"
script="${HOME}/.ssh/git-hooks/${2}"
repo="${HOME}/${3}"
clone="${4:-${repo}}"

# Tests
test -f "${repo}/HEAD"
test -f "${clone}/.git/HEAD"

# Installs the generic hook that runs scripts
test -f "${repo}/hooks/${hook}" || ln -s "${HOME}/.ssh/git-hooks/generic" "${repo}/hooks/${hook}"

# Install the hook on the repo
git config -f "${repo}/config" --add "hacking.hooks.${hook}.${2}" "${clone}"

exit $?