diff options
Diffstat (limited to 'git-hooks')
-rwxr-xr-x | git-hooks/auto-deploy | 16 | ||||
-rwxr-xr-x | git-hooks/generic | 12 | ||||
-rwxr-xr-x | git-hooks/hackers-update (renamed from git-hooks/post-receive) | 6 |
3 files changed, 31 insertions, 3 deletions
diff --git a/git-hooks/auto-deploy b/git-hooks/auto-deploy new file mode 100755 index 0000000..02a22e7 --- /dev/null +++ b/git-hooks/auto-deploy @@ -0,0 +1,16 @@ +#!/bin/bash +# auto-deploy +# Usage: auto-deploy /srv/http/repo + +# fail on any error +set -e + +# Can we write on the clone? +test -w "${1}/.git/HEAD" + +alias git="git --git-dir '${1}/.git' --work-tree '${1}'" + +# pull this repo on the current branch +git pull origin $(git rev-parse --abbrev-ref HEAD) + +exit $? diff --git a/git-hooks/generic b/git-hooks/generic new file mode 100755 index 0000000..ebf56f4 --- /dev/null +++ b/git-hooks/generic @@ -0,0 +1,12 @@ +#!/bin/sh +# Generic hook, installs itself as a valid githook(5) and runs whatever it +# finds on hacking.hook.$self +# Format: +# hacking.hooks.post-receive.auto-deploy /srv/http/markpower.hackcoop.com.ar + +git config -f config --get-regexp "hacking.hooks.$(basename ${0}).*" | \ +while read hook repo; do + hook="`echo "${hook}" | cut -d'.' -f4`" + + ${HOME}/.ssh/git-hooks/${hook} ${repo} ${@} </dev/stdin +done diff --git a/git-hooks/post-receive b/git-hooks/hackers-update index 671dd4e..b78c54d 100755 --- a/git-hooks/post-receive +++ b/git-hooks/hackers-update @@ -5,17 +5,17 @@ # cp .ssh/git-hooks/post-receive hackers.git/hooks/ # fail on any error -set -E +set -e # the ssh dir -ssh_dir=/srv/git/.ssh +ssh_dir=${HOME}/.ssh # pull this repo git --git-dir ${ssh_dir}/.git \ --work-tree ${ssh_dir} \ pull origin master -# secure the files +# secure the files (sshd will refuse connections otherwise) chmod 600 ${ssh_dir}/authorized_keys chmod 700 ${ssh_dir} |