summaryrefslogtreecommitdiff
path: root/git-shell-commands/hook-install
blob: 482a9159905d1ac320dfd18c2126b56f820b0c60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/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"
test -f "${repo}/hooks/${hook_name}"

# 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 --local --add "hacking.hooks.${hook}.${2}" "${clone}"

exit $?