update
application/octet-stream
Filename: update
Type: application/octet-stream
Part: 0
#!/bin/sh
set -eu
refname="$1"
oldrev="$2"
newrev="$3"
if [ "$refname" != "refs/heads/master" ] ; then
exit 0
fi
if git diff --name-only --diff-filter=ACMR $oldrev $newrev | grep src/tools/pgindent/typedefs.list > /dev/null; then
# if typedefs.list is changed, we need to re-run pgindent on all files
files='src contrib'
else
files=$(git diff --name-only --diff-filter=ACMR $oldrev $newrev)
fi
check_indent () {
export GIT_WORK_TREE=$(mktemp -d)
trap 'rm -rf "$GIT_WORK_TREE"' EXIT
git checkout -f $newrev -- $files src/tools/pgindent/pgindent src/tools/pgindent/typedefs.list
# no need to filter files - pgindent ignores everything that isn't a
# .c or .h file
cd $GIT_WORK_TREE
src/tools/pgindent/pgindent --silent-diff $files && return 0
exec 2>&1
echo 'You need a pgindent run, e.g:'
echo 'src/tools/pgindent/pgindent src'
exit 1
}
# nothing to do if there are no files
test -z "$files" && exit 0
check_indent