38 lines
967 B
Bash
Executable File
38 lines
967 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
ref_name=$1
|
|
new_rev=$3
|
|
|
|
# only check branches, not tags or bare commits
|
|
if [ -z $(echo $ref_name | grep "refs/heads/") ]; then
|
|
exit 0
|
|
fi
|
|
|
|
# don't check empty branches
|
|
if [ "$(expr "${new_rev}" : '0*$')" -ne 0 ]; then
|
|
exit 0
|
|
fi
|
|
|
|
# Checkout a copy of the branch (but also changes HEAD)
|
|
my_work_tree=$(mktemp -d -t git-work-tree.XXXXXXXX) 2>/dev/null
|
|
git --work-tree="${my_work_tree}" --git-dir="." checkout $new_rev -f >/dev/null
|
|
|
|
# Do the formatter check
|
|
echo "Checking code formatting..."
|
|
pushd ${my_work_tree} >/dev/null
|
|
prettier './**/*.{js,css,html,json,md}' --list-different
|
|
my_status=$?
|
|
popd >/dev/null
|
|
|
|
# reset HEAD to master, and cleanup
|
|
git --work-tree="${my_work_tree}" --git-dir="." checkout master -f >/dev/null
|
|
rm -rf "${my_work_tree}"
|
|
|
|
# handle error, if any
|
|
if [ "0" != "$my_status" ]; then
|
|
echo "Please format the files listed above and re-commit."
|
|
echo "(and don't forget your .prettierrc, if you have one)"
|
|
exit 1
|
|
fi
|