Skip to content

Instantly share code, notes, and snippets.

@silviud
Created April 6, 2014 13:53
Show Gist options
  • Save silviud/10006351 to your computer and use it in GitHub Desktop.
Save silviud/10006351 to your computer and use it in GitHub Desktop.
Git Hooks
#!/bin/bash
repos=( repo03 repo04 )
for dir in $(seq 0 $((${#repos[@]} - 1)))
do
if [ ! -d "server_repo/${repos[$dir]}.git" ]; then
echo "${repos[$dir]}"
echo "creating repos"
mkdir -p server_repo/${repos[$dir]}.git
pushd "server_repo/${repos[$dir]}.git"
output=$(git --bare init)
echo $output
popd "server_repo/${repos[$dir]}.git"
else
echo "structure created already - skipping!"
fi
done
################################################
# run server
git daemon --reuseaddr --base-path=./
################################################
# pre-recive hook
:
RULLER="++++++++++++++++++++++++++++++++++++++++"
validate_ref(){
local oldrev=$1
local newrev=$2
local refname=$3
echo $RULLER
echo $@
newrev_type=$(git cat-file -t $newrev)
echo $newrev_type # commit|delete ...
echo $(git diff-tree -r --name-only --no-commit-id $oldrev)
echo $(git diff-tree -r --name-only --no-commit-id $newrev)
echo $(git ls-files --directory)
}
while read oldrev newrev refname
do
validate_ref $oldrev $newrev $refname
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment