2022-06-20 13:10:38 +00:00
|
|
|
#!/bin/bash
|
2022-01-14 16:06:00 +00:00
|
|
|
# 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"
|
|
|
|
|
2022-01-14 16:06:00 +00:00
|
|
|
echo "-- Pre-commit checks --"
|
|
|
|
echo "To ignore these checks next time, run: git commit --no-verify"
|
|
|
|
echo ""
|
2022-05-13 12:35:25 +00:00
|
|
|
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}"
|
2022-01-14 16:06:00 +00:00
|
|
|
elif [[ $? -eq 2 ]]; then
|
2022-01-14 22:21:32 +00:00
|
|
|
echo ""
|
2022-01-14 16:06:00 +00:00
|
|
|
echo "A missing dependency was found"
|
|
|
|
echo ""
|
2022-10-28 19:18:39 +00:00
|
|
|
if [ ! -t 1 ]; then
|
|
|
|
echo "This is a non-interactive shell, skipping checks."
|
|
|
|
exit 0
|
|
|
|
else
|
|
|
|
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
|
|
|
|
case $yn in
|
|
|
|
[Yy]* )
|
|
|
|
echo -e " ${act}Skipping${res} checks"
|
|
|
|
exit 0
|
|
|
|
;;
|
|
|
|
[Nn]* | "" )
|
|
|
|
echo -e " ${err}Aborting${res} commit"
|
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
* )
|
|
|
|
echo -e "${neg}Invalid input${res}"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
fi
|
2021-02-04 19:25:29 +00:00
|
|
|
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"
|
2022-01-14 16:06:00 +00:00
|
|
|
exit 1
|
2022-05-13 12:35:25 +00:00
|
|
|
fi
|