fractal/hooks/pre-commit.hook

48 lines
1.1 KiB
Text
Raw Normal View History

2021-02-04 19:25:29 +00:00
#!/bin/sh
# Depends on: scripts/checks.sh
2021-02-04 19:25:29 +00:00
2022-01-14 22:21:32 +00:00
# Style helpers
act="\e[1;32m"
err="\e[1;31m"
pos="\e[32m"
neg="\e[31m"
res="\e[0m"
echo "-- Pre-commit checks --"
echo "To ignore these checks next time, run: git commit --no-verify"
echo ""
if scripts/checks.sh --git-staged; then
2021-02-04 19:25:29 +00:00
echo ""
2022-01-14 22:21:32 +00:00
echo -e "Pre-commit checks result: ${pos}ok${res}"
elif [[ $? -eq 2 ]]; then
2022-01-14 22:21:32 +00:00
echo ""
echo "A missing dependency was found"
echo ""
echo "y: Skip checks and proceed with commit"
echo "N: Abort commit"
echo ""
while true
do
echo -n "Skip the pre-commit checks? [y/N]: "; read yn < /dev/tty
2021-02-04 19:25:29 +00:00
case $yn in
[Yy]* )
2022-01-14 22:21:32 +00:00
echo -e " ${act}Skipping${res} checks"
exit 0
;;
[Nn]* | "" )
2022-01-14 22:21:32 +00:00
echo -e " ${err}Aborting${res} commit"
exit 1
;;
* )
2022-01-14 22:21:32 +00:00
echo -e "${neg}Invalid input${res}"
;;
2021-02-04 19:25:29 +00:00
esac
done
else
2022-01-14 22:21:32 +00:00
echo ""
echo -e "Pre-commit checks result: ${neg}fail${res}"
echo ""
echo -e " ${err}Aborting${res} commit"
exit 1
fi