#!@BASH@ set -xe -o pipefail export LC_ALL=C TEMP="$(mktemp -d)" [[ -n "${TEMP}" ]] trap_func() { [[ -e "${TEMP}/output.txt" ]] && cat "${TEMP}/output.txt" [[ -n "${TEMP}" ]] && rm -rf "${TEMP}" } trap trap_func EXIT mkdir -p "${TEMP}/repos" git init --bare "${TEMP}/repos/foo.git" &> /dev/null SELF="${PWD}/blogc-git-receiver" ln -s "${SELF}" "${TEMP}/repos/foo.git/hooks/pre-receive" cat > "${TEMP}/payload.txt" <&1 | tee "${TEMP}/output.txt" grep "warning: no reference to master branch found. nothing to deploy." "${TEMP}/output.txt" &> /dev/null cat > "${TEMP}/tmp.txt" < \$(OUTPUT_DIR)/foo.txt reset refs/heads/master commit refs/heads/master mark :2 author Rafael G. Martins 1476139736 +0200 committer Rafael G. Martins 1476139736 +0200 data 11 testing... M 100644 :1 Makefil EOF git fast-import < "${TEMP}/tmp.txt" &> /dev/null cat > "${TEMP}/payload.txt" <&1 | tee "${TEMP}/output.txt" grep "warning: no makefile found. skipping ..." "${TEMP}/output.txt" &> /dev/null cd "${TEMP}" git init --bare "${TEMP}/repos/foo2.git" &> /dev/null ln -s "${SELF}" "${TEMP}/repos/foo2.git/hooks/pre-receive" cat > "${TEMP}/tmp.txt" < \$(OUTPUT_DIR)/foo.txt reset refs/heads/master commit refs/heads/master mark :2 author Rafael G. Martins 1476139736 +0200 committer Rafael G. Martins 1476139736 +0200 data 11 testing... M 100644 :1 Makefile EOF cd "${TEMP}/repos/foo2.git" git fast-import < "${TEMP}/tmp.txt" &> /dev/null cat > "${TEMP}/payload.txt" <&1 | tee "${TEMP}/output.txt" grep "echo lol" "${TEMP}/output.txt" &> /dev/null [[ -h htdocs ]] [[ "$(cat htdocs/foo.txt)" == "lol" ]] DEST="$(readlink htdocs)" [[ -e "${DEST}" ]] cd "${TEMP}" git init --bare "${TEMP}/repos/foo3.git" &> /dev/null ln -s "${SELF}" "${TEMP}/repos/foo3.git/hooks/pre-receive" cat > "${TEMP}/tmp.txt" < \$(OUTPUT_DIR)/foo.txt commit refs/heads/master mark :2 author Rafael G. Martins 1476142917 +0200 committer Rafael G. Martins 1476142917 +0200 data 12 testing2... M 100644 :1 Makefile EOF cd "${TEMP}/repos/foo3.git" ln -s "${DEST}" htdocs git fast-import < "${TEMP}/tmp.txt" &> /dev/null cat > "${TEMP}/payload.txt" <&1 | tee "${TEMP}/output.txt" grep "echo lol" "${TEMP}/output.txt" &> /dev/null [[ -h htdocs ]] [[ "$(cat htdocs/foo.txt)" == "lol" ]] [[ "${DEST}" != "$(readlink htdocs)" ]] [[ ! -e "${DEST}" ]] DEST="$(readlink htdocs)" HOME="${TEMP}" ${TESTS_ENVIRONMENT} ./hooks/pre-receive 2>&1 | tee "${TEMP}/output.txt" [[ -h htdocs ]] [[ "$(cat htdocs/foo.txt)" == "lol" ]] [[ "${DEST}" != "$(readlink htdocs)" ]] [[ ! -e "${DEST}" ]] cd .. DEST="$(readlink foo3.git/htdocs)" HOME="${TEMP}" ${TESTS_ENVIRONMENT} ./foo3.git/hooks/pre-receive 2>&1 | tee "${TEMP}/output.txt" [[ -h foo3.git/htdocs ]] [[ "$(cat foo3.git/htdocs/foo.txt)" == "lol" ]] [[ "${DEST}" != "$(readlink foo3.git/htdocs)" ]] [[ ! -e "${DEST}" ]] cd .. DEST="$(readlink repos/foo3.git/htdocs)" HOME="${TEMP}" ${TESTS_ENVIRONMENT} ./repos/foo3.git/hooks/pre-receive 2>&1 | tee "${TEMP}/output.txt" [[ -h repos/foo3.git/htdocs ]] [[ "$(cat repos/foo3.git/htdocs/foo.txt)" == "lol" ]] [[ "${DEST}" != "$(readlink repos/foo3.git/htdocs)" ]] [[ ! -e "${DEST}" ]] rm "${TEMP}/output.txt"