X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=tests%2Ftest-lib.sh;h=01d0ceedfc593f6d3a8bc4b0fae2d743b090cc44;hb=f14b5840d02ec82d7576a6c71137dfe537b85c6c;hp=2c5413dac367b2b9ab0d7b4b467259bef01a5e45;hpb=e6f64dde41d8186f3d9c93ea4b8357de571ffb66;p=git-central.git diff --git a/tests/test-lib.sh b/tests/test-lib.sh index 2c5413d..01d0cee 100644 --- a/tests/test-lib.sh +++ b/tests/test-lib.sh @@ -453,9 +453,58 @@ install_client_hook () { chmod +x "$TRASH_HOOKS/$2" } +install_post_checkout_hook () { + mkdir -p ".git/hooks" + hook=".git/hooks/post-checkout" + + echo "#!/bin/sh" >$hook + for ((i=1;i<=$#;i+=1)); do + eval script_name="$"$i + echo "../../client/$script_name \$1 \$2 \$3 &&" >>$hook + done + echo "echo >/dev/null" >>$hook + + chmod +x $hook +} + install_server_hook () { - mkdir -p "server/.git/hooks" - cp "../../server/$1" "server/.git/hooks/$2" - chmod +x "server/.git/hooks/$2" + mkdir -p "server/.git/hooks" + cp "../../server/$1" "server/.git/hooks/$2" + chmod +x "server/.git/hooks/$2" +} + +install_update_hook () { + mkdir -p "server/.git/hooks" + hook="server/.git/hooks/update" + + echo "#!/bin/sh" >$hook + for ((i=1;i<=$#;i+=1)); do + eval script_name="$"$i + echo "../../../../server/$script_name \$1 \$2 \$3 &&" >>$hook + done + echo "echo >/dev/null" >>$hook + + chmod +x $hook +} + +install_post_receive_hook () { + mkdir -p "server/.git/hooks" + hook="server/.git/hooks/post-receive" + + cat >$hook <<-'EOF' + #!/bin/sh + nl=$'\n' + input="" + while read newref oldref refname ; do + input="$input$newref $oldref $refname$nl" + done + EOF + + for ((i=1;i<=$#;i+=1)); do + eval script_name="$"$i + echo "echo -n \"\$input\" | ../../../../server/$script_name" >>$hook + done + + chmod +x $hook }